From: Junio C Hamano Date: Thu, 16 Feb 2012 22:08:00 +0000 (-0800) Subject: Merge branch 'jc/maint-commit-ignore-i-t-a' into maint X-Git-Tag: v1.7.9.2~25 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/6c63ab3ca7abc50155acc6c28380435fb79f7fa9?ds=inline;hp=-c Merge branch 'jc/maint-commit-ignore-i-t-a' into maint * jc/maint-commit-ignore-i-t-a: commit: ignore intent-to-add entries instead of refusing Conflicts: cache-tree.c --- 6c63ab3ca7abc50155acc6c28380435fb79f7fa9 diff --combined cache-tree.c index 8de39590d5,ce0d0e3ecc..bf03cb7fce --- a/cache-tree.c +++ b/cache-tree.c @@@ -150,7 -150,7 +150,7 @@@ void cache_tree_invalidate_path(struct } static int verify_cache(struct cache_entry **cache, - int entries) + int entries, int silent) { int i, funny; @@@ -158,9 -158,7 +158,9 @@@ funny = 0; for (i = 0; i < entries; i++) { struct cache_entry *ce = cache[i]; - if (ce_stage(ce) || (ce->ce_flags & CE_INTENT_TO_ADD)) { + if (ce_stage(ce)) { + if (silent) + return -1; if (10 < ++funny) { fprintf(stderr, "...\n"); break; @@@ -338,8 -336,8 +338,8 @@@ static int update_one(struct cache_tre mode, sha1_to_hex(sha1), entlen+baselen, path); } - if (ce->ce_flags & CE_REMOVE) - continue; /* entry being removed */ + if (ce->ce_flags & (CE_REMOVE | CE_INTENT_TO_ADD)) + continue; /* entry being removed or placeholder */ strbuf_grow(&buffer, entlen + 100); strbuf_addf(&buffer, "%o %.*s%c", mode, entlen, path + baselen, '\0'); @@@ -372,11 -370,10 +372,11 @@@ int cache_tree_update(struct cache_tre struct cache_entry **cache, int entries, int missing_ok, - int dryrun) + int dryrun, + int silent) { int i; - i = verify_cache(cache, entries); + i = verify_cache(cache, entries, silent); if (i) return i; i = update_one(it, cache, entries, "", 0, missing_ok, dryrun); @@@ -576,7 -573,7 +576,7 @@@ int write_cache_as_tree(unsigned char * if (cache_tree_update(active_cache_tree, active_cache, active_nr, - missing_ok, 0) < 0) + missing_ok, 0, 0) < 0) return WRITE_TREE_UNMERGED_INDEX; if (0 <= newfd) { if (!write_cache(newfd, active_cache, active_nr) && @@@ -671,11 -668,3 +671,11 @@@ int cache_tree_matches_traversal(struc return it->entry_count; return 0; } + +int update_main_cache_tree (int silent) +{ + if (!the_index.cache_tree) + the_index.cache_tree = cache_tree(); + return cache_tree_update(the_index.cache_tree, + the_index.cache, the_index.cache_nr, 0, 0, silent); +}