From ed342fdea0b7fd466ed3257c5e68aa81c391b782 Mon Sep 17 00:00:00 2001 From: Stephen Boyd Date: Thu, 18 Jun 2009 02:17:54 -0700 Subject: [PATCH] add: allow configurations to be overriden by command line Don't call git_config after parsing the command line options, otherwise the config settings will override any settings made by the command line. This can be seen by setting add.ignore_errors and then specifying --no-ignore-errors when using git-add. Signed-off-by: Stephen Boyd Signed-off-by: Junio C Hamano --- builtin-add.c | 4 ++-- t/t3700-add.sh | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/builtin-add.c b/builtin-add.c index fc3f96eaef..13db4a6455 100644 --- a/builtin-add.c +++ b/builtin-add.c @@ -247,6 +247,8 @@ int cmd_add(int argc, const char **argv, const char *prefix) int add_new_files; int require_pathspec; + git_config(add_config, NULL); + argc = parse_options(argc, argv, builtin_add_options, builtin_add_usage, 0); if (patch_interactive) @@ -254,8 +256,6 @@ int cmd_add(int argc, const char **argv, const char *prefix) if (add_interactive) exit(interactive_add(argc, argv, prefix)); - git_config(add_config, NULL); - if (addremove && take_worktree_changes) die("-A and -u are mutually incompatible"); if (addremove && !argc) { diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 2ac93a346d..060a6ecabe 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -221,6 +221,19 @@ test_expect_success 'git add (add.ignore-errors = false)' ' test_must_fail git add --verbose . && ! ( git ls-files foo1 | grep foo1 ) ' +rm -f foo2 + +test_expect_success '--no-ignore-errors overrides config' ' + git config add.ignore-errors 1 && + git reset --hard && + date >foo1 && + date >foo2 && + chmod 0 foo2 && + test_must_fail git add --verbose --no-ignore-errors . && + ! ( git ls-files foo1 | grep foo1 ) && + git config add.ignore-errors 0 +' +rm -f foo2 test_expect_success 'git add '\''fo\[ou\]bar'\'' ignores foobar' ' git reset --hard && -- 2.11.4.GIT