[PATCH 3/4] commit: turn commit.ignoreIntentToAdd to true by default
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:53:00
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
From now on, those who has not set commit.ignoreIntentToAdd can commit as-is even if there are intent-to-add entries. Users are advised/annoyed to switch to new behavior. Support for "commit.ignoreIntentToAdd = true" will be dropped in future. The placeholder "FIXME" needs to be replaced when it's decided what release will drop config support. Signed-off-by: Nguyễn Thái Ngọc Duy <redacted> --- Documentation/config.txt | 5 ++--- builtin/commit.c | 13 ++++++++----- t/t2203-add-intent.sh | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 6ec81a8..f9a05ac 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt@@ -837,9 +837,8 @@ commit.ignoreIntentToAdd:: in index. Set to `false` to disallow commit in this acase, or `true` to allow it. + -By default, `git commit` refuses to commit as-is when you have intent-to-add -entries. This will change in 1.8.0, where `git commit` allows it. If you -prefer current behavior, please set it to `false`. +By default, `git commit` allows to commit as-is when you have intent-to-add +entries. Support for this configuration variable will be dropped in FIXME. credential.helper:: Specify an external helper to be called when a username or
diff --git a/builtin/commit.c b/builtin/commit.c
index af3250c..eb0ca49 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c@@ -423,17 +423,17 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, if (!pathspec || !*pathspec) { fd = hold_locked_index(&index_lock, 1); refresh_cache_or_die(refresh_flags); - if (!set_commit_ignoreintenttoadd) { + if (!(cache_tree_flags & WRITE_TREE_IGNORE_INTENT_TO_ADD)) { int i; for (i = 0; i < active_nr; i++) if (active_cache[i]->ce_flags & CE_INTENT_TO_ADD) break; if (i < active_nr) warning(_("You are committing as-is with intent-to-add entries as the result of\n" - "\"git add -N\". Git currently forbids this case. This will change in\n" - "1.8.0 where intent-to-add entries are simply ignored when committing\n" - "as-is. Please look up document and set commit.ignoreIntentToAdd\n" - "properly to stop this warning.")); + "\"git add -N\". Git currently forbids this case. But this is deprecated\n" + "support for this behavior will be dropped in FIXME.\n" + "Please look up document and set commit.ignoreIntentToAdd to true\n" + "or remove it.")); } if (active_cache_changed) { update_main_cache_tree(cache_tree_flags | WRITE_TREE_SILENT);
@@ -1423,6 +1423,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix) git_config(git_commit_config, &s); determine_whence(&s); + if (!set_commit_ignoreintenttoadd) + cache_tree_flags |= WRITE_TREE_IGNORE_INTENT_TO_ADD; + if (get_sha1("HEAD", sha1)) current_head = NULL; else {
diff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh
index 88a508e..09b8bbf 100755
--- a/t/t2203-add-intent.sh
+++ b/t/t2203-add-intent.sh@@ -41,11 +41,11 @@ 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 -minitial + git commit -minitial ' test_expect_success 'can commit tree with i-t-a entry' ' - git reset --hard && + git reset --hard HEAD^ && echo xyzzy >rezrov && echo frotz >nitfol && git add rezrov &&
--
1.7.8.36.g69ee2