Merge branch 'jc/maint-commit-ignore-i-t-a' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 16 Feb 2012 22:08:00 +0000 (14:08 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 Feb 2012 22:08:00 +0000 (14:08 -0800)
* jc/maint-commit-ignore-i-t-a:
commit: ignore intent-to-add entries instead of refusing

Conflicts:
cache-tree.c

1  2 
cache-tree.c
diff --combined cache-tree.c
index 8de39590d57e14d08ee4d04b74965191aa905b29,ce0d0e3ecc899817315f34f3c8908e0a34bf2266..bf03cb7fcefdc7e119203f096b367592d5b7cf8c
@@@ -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;
  
        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);
 +}