diff options
-rw-r--r-- | builtin-add.c | 11 | ||||
-rwxr-xr-x | t/t3700-add.sh | 21 |
2 files changed, 31 insertions, 1 deletions
diff --git a/builtin-add.c b/builtin-add.c index 522519ec86..73235ed08a 100644 --- a/builtin-add.c +++ b/builtin-add.c @@ -206,6 +206,15 @@ static struct option builtin_add_options[] = { OPT_END(), }; +static int add_config(const char *var, const char *value) +{ + if (!strcasecmp(var, "add.ignore-errors")) { + ignore_add_errors = git_config_bool(var, value); + return 0; + } + return git_default_config(var, value); +} + int cmd_add(int argc, const char **argv, const char *prefix) { int exit_status = 0; @@ -220,7 +229,7 @@ int cmd_add(int argc, const char **argv, const char *prefix) if (add_interactive) exit(interactive_add(argc, argv, prefix)); - git_config(git_default_config); + git_config(add_config); newfd = hold_locked_index(&lock_file, 1); diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 01e4d62513..5b46ba3560 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -201,4 +201,25 @@ test_expect_success 'git add --ignore-errors' ' rm -f foo2 +test_expect_success 'git add (add.ignore-errors)' ' + git config add.ignore-errors 1 && + git reset --hard && + date >foo1 && + date >foo2 && + chmod 0 foo2 && + test_must_fail git add --verbose . && + git ls-files foo1 | grep foo1 +' +rm -f foo2 + +test_expect_success 'git add (add.ignore-errors = false)' ' + git config add.ignore-errors 0 && + git reset --hard && + date >foo1 && + date >foo2 && + chmod 0 foo2 && + test_must_fail git add --verbose . && + ! ( git ls-files foo1 | grep foo1 ) +' + test_done |