diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-06-24 13:48:44 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-06-24 13:48:44 -0700 |
commit | bd21822572d2852917abd71d030c8b2e789eb4de (patch) | |
tree | 89e267bd418726f4a316b8899cb20e4ec0a59816 /unpack-trees.c | |
parent | bc918acf708a839bbc350e014d599fdd458319ca (diff) | |
parent | 603d249853981d81d1f8cf561b18d77cb1b55923 (diff) | |
download | git-bd21822572d2852917abd71d030c8b2e789eb4de.tar.gz git-bd21822572d2852917abd71d030c8b2e789eb4de.tar.xz |
Merge branch 'rs/unpack-trees-tree-walk-conflict-field'
Code clean-up.
* rs/unpack-trees-tree-walk-conflict-field:
unpack-trees: don't shift conflicts left and right
Diffstat (limited to 'unpack-trees.c')
-rw-r--r-- | unpack-trees.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/unpack-trees.c b/unpack-trees.c index 57b40743a..b27f2a62e 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -464,7 +464,7 @@ static int traverse_trees_recursive(int n, unsigned long dirmask, newinfo.pathspec = info->pathspec; newinfo.name = *p; newinfo.pathlen += tree_entry_len(p) + 1; - newinfo.conflicts |= df_conflicts; + newinfo.df_conflicts |= df_conflicts; for (i = 0; i < n; i++, dirmask >>= 1) { const unsigned char *sha1 = NULL; @@ -565,17 +565,12 @@ static int unpack_nondirectories(int n, unsigned long mask, { int i; struct unpack_trees_options *o = info->data; - unsigned long conflicts; + unsigned long conflicts = info->df_conflicts | dirmask; /* Do we have *only* directories? Nothing to do */ if (mask == dirmask && !src[0]) return 0; - conflicts = info->conflicts; - if (o->merge) - conflicts >>= 1; - conflicts |= dirmask; - /* * Ok, we've filled in up to any potential index entry in src[0], * now do the rest. @@ -807,13 +802,6 @@ static int unpack_callback(int n, unsigned long mask, unsigned long dirmask, str /* Now handle any directories.. */ if (dirmask) { - unsigned long conflicts = mask & ~dirmask; - if (o->merge) { - conflicts <<= 1; - if (src[0]) - conflicts |= 1; - } - /* special case: "diff-index --cached" looking at a tree */ if (o->diff_index_cached && n == 1 && dirmask == 1 && S_ISDIR(names->mode)) { @@ -832,7 +820,7 @@ static int unpack_callback(int n, unsigned long mask, unsigned long dirmask, str } } - if (traverse_trees_recursive(n, dirmask, conflicts, + if (traverse_trees_recursive(n, dirmask, mask & ~dirmask, names, info) < 0) return -1; return mask; |