Browse Source

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 <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Stephen Boyd 16 years ago committed by Junio C Hamano
parent
commit
ed342fdea0
  1. 4
      builtin-add.c
  2. 13
      t/t3700-add.sh

4
builtin-add.c

@ -247,6 +247,8 @@ int cmd_add(int argc, const char **argv, const char *prefix) @@ -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) @@ -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) {

13
t/t3700-add.sh

@ -221,6 +221,19 @@ test_expect_success 'git add (add.ignore-errors = false)' ' @@ -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 &&

Loading…
Cancel
Save