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 | |
parent | bc918acf708a839bbc350e014d599fdd458319ca (diff) | |
parent | 603d249853981d81d1f8cf561b18d77cb1b55923 (diff) | |
download | git-bd21822572d2852917abd71d030c8b2e789eb4de.tar.gz |
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
-rw-r--r-- | tree-walk.h | 2 | ||||
-rw-r--r-- | unpack-trees.c | 18 |
2 files changed, 4 insertions, 16 deletions
diff --git a/tree-walk.h b/tree-walk.h index 2bf0db9814..ae04b6417d 100644 --- a/tree-walk.h +++ b/tree-walk.h @@ -46,7 +46,7 @@ struct traverse_info { int pathlen; struct pathspec *pathspec; - unsigned long conflicts; + unsigned long df_conflicts; traverse_callback_t fn; void *data; int show_all_errors; diff --git a/unpack-trees.c b/unpack-trees.c index 57b40743a1..b27f2a62e8 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; |