diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-24 17:35:58 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-24 17:35:58 -0800 |
commit | 026680f881e751311674d97d0f6ed87f06a92bfb (patch) | |
tree | 770bcfc2a3746cd568fbe17fea2926f6da2c7fa8 /diff-lib.c | |
parent | eca9388f398eb3256fafbf875a8a4ff5a73ab6f2 (diff) | |
parent | ba655da537a999670c7b21e0446e774a1f9733ea (diff) | |
download | git-026680f881e751311674d97d0f6ed87f06a92bfb.tar.gz |
Merge branch 'jc/fix-tree-walk'
* jc/fix-tree-walk:
read-tree --debug-unpack
unpack-trees.c: look ahead in the index
unpack-trees.c: prepare for looking ahead in the index
Aggressive three-way merge: fix D/F case
traverse_trees(): handle D/F conflict case sanely
more D/F conflict tests
tests: move convenience regexp to match object names to test-lib.sh
Conflicts:
builtin-read-tree.c
unpack-trees.c
unpack-trees.h
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/diff-lib.c b/diff-lib.c index 23e180eed1..ec2e2ac005 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -380,21 +380,6 @@ static void do_oneway_diff(struct unpack_trees_options *o, show_modified(revs, tree, idx, 1, cached, match_missing); } -static inline void skip_same_name(struct cache_entry *ce, struct unpack_trees_options *o) -{ - int len = ce_namelen(ce); - const struct index_state *index = o->src_index; - - while (o->pos < index->cache_nr) { - struct cache_entry *next = index->cache[o->pos]; - if (len != ce_namelen(next)) - break; - if (memcmp(ce->name, next->name, len)) - break; - o->pos++; - } -} - /* * The unpack_trees() interface is designed for merging, so * the different source entries are designed primarily for @@ -416,9 +401,6 @@ static int oneway_diff(struct cache_entry **src, struct unpack_trees_options *o) struct cache_entry *tree = src[1]; struct rev_info *revs = o->unpack_data; - if (idx && ce_stage(idx)) - skip_same_name(idx, o); - /* * Unpack-trees generates a DF/conflict entry if * there was a directory in the index and a tree @@ -464,6 +446,7 @@ int run_diff_index(struct rev_info *revs, int cached) exit(128); diff_set_mnemonic_prefix(&revs->diffopt, "c/", cached ? "i/" : "w/"); + diffcore_fix_diff_index(&revs->diffopt); diffcore_std(&revs->diffopt); diff_flush(&revs->diffopt); return 0; |