X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-read-tree.c;h=57854017535a36fc1fcd7bb997f198956391199d;hb=1ae419cb3902e6cc45538a9673539ed5316fcf30;hp=1967d100f28d70e588fde618aa7ed4a10b76ee1d;hpb=04d70bebe72c264a1c4d26cbe306672e3e4098e3;p=git.git diff --git a/builtin-read-tree.c b/builtin-read-tree.c index 1967d100f..578540175 100644 --- a/builtin-read-tree.c +++ b/builtin-read-tree.c @@ -13,15 +13,16 @@ #include "dir.h" #include "builtin.h" +#define MAX_TREES 8 static int nr_trees; -static struct tree *trees[4]; +static struct tree *trees[MAX_TREES]; static int list_tree(unsigned char *sha1) { struct tree *tree; - if (nr_trees >= 4) - return -1; + if (nr_trees >= MAX_TREES) + die("I cannot read more than %d trees", MAX_TREES); tree = parse_tree_indirect(sha1); if (!tree) return -1; @@ -44,8 +45,7 @@ static int read_cache_unmerged(void) continue; cache_tree_invalidate_path(active_cache_tree, ce->name); last = ce; - ce->ce_mode = 0; - ce->ce_flags &= ~htons(CE_STAGEMASK); + ce->ce_flags |= CE_REMOVE; } *dst++ = ce; } @@ -96,7 +96,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix) { int i, newfd, stage = 0; unsigned char sha1[20]; - struct tree_desc t[3]; + struct tree_desc t[MAX_TREES]; struct unpack_trees_options opts; memset(&opts, 0, sizeof(opts)); @@ -282,7 +282,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix) } if (write_cache(newfd, active_cache, active_nr) || - close(newfd) || commit_locked_index(&lock_file)) + commit_locked_index(&lock_file)) die("unable to write new index file"); return 0; }