Code

Merge branch 'sb/maint-1.6.0-add-config-fix' into maint
authorJunio C Hamano <gitster@pobox.com>
Mon, 22 Jun 2009 07:44:09 +0000 (00:44 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Jun 2009 07:44:09 +0000 (00:44 -0700)
* sb/maint-1.6.0-add-config-fix:
  add: allow configurations to be overriden by command line

builtin-add.c
t/t3700-add.sh

index ad889aac5bd174bf96a87b78eeb243aea89a1626..d6ad57bfc2841959a2017d0723c1f9d57a920fac 100644 (file)
@@ -250,6 +250,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)
@@ -257,8 +259,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 || take_worktree_changes) && !argc) {
index 050de42ef4148a730c30520ccaad5e9871e536bd..32595fa30c3171495929ceecda3272b963e51bed 100755 (executable)
@@ -221,6 +221,19 @@ test_expect_success POSIXPERM '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 BSLASHPSPEC "git add 'fo\\[ou\\]bar' ignores foobar" '
        git reset --hard &&