diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-02-12 22:42:10 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-02-12 22:42:10 -0800 |
commit | 44a1020d4d41b90be80745c7a16e2a49fa612b56 (patch) | |
tree | fd734df8e43fb1dc956ac045eb0a699d09fb1176 | |
parent | 1efb73322ad800cc679496124e8a1f498b52e5cb (diff) | |
parent | 3f6d56de5f99ec5f0667bef4411f2515b253a5b2 (diff) | |
download | git-44a1020d4d41b90be80745c7a16e2a49fa612b56.tar.gz git-44a1020d4d41b90be80745c7a16e2a49fa612b56.tar.xz |
Merge branch 'jc/maint-commit-ignore-i-t-a'
* jc/maint-commit-ignore-i-t-a:
commit: ignore intent-to-add entries instead of refusing
Conflicts:
cache-tree.c
-rw-r--r-- | cache-tree.c | 6 | ||||
-rwxr-xr-x | t/t2203-add-intent.sh | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/cache-tree.c b/cache-tree.c index 8de39590d..bf03cb7fc 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -158,7 +158,7 @@ static int verify_cache(struct cache_entry **cache, 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) { @@ -338,8 +338,8 @@ static int update_one(struct cache_tree *it, 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'); diff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh index 25435290a..ec35409f9 100755 --- a/t/t2203-add-intent.sh +++ b/t/t2203-add-intent.sh @@ -32,7 +32,7 @@ test_expect_success 'intent to add does not clobber existing paths' ' ! grep "$empty" actual ' -test_expect_success 'cannot commit with i-t-a entry' ' +test_expect_success 'i-t-a entry is simply ignored' ' test_tick && git commit -a -m initial && git reset --hard && @@ -41,12 +41,14 @@ test_expect_success 'cannot commit with i-t-a entry' ' echo frotz >nitfol && git add rezrov && git add -N nitfol && - test_must_fail git commit -m initial + git commit -m second && + test $(git ls-tree HEAD -- nitfol | wc -l) = 0 && + test $(git diff --name-only HEAD -- nitfol | wc -l) = 1 ' test_expect_success 'can commit with an unrelated i-t-a entry in index' ' git reset --hard && - echo xyzzy >rezrov && + echo bozbar >rezrov && echo frotz >nitfol && git add rezrov && git add -N nitfol && |