Merge branch 'sb/maint-1.6.0-add-config-fix'

* sb/maint-1.6.0-add-config-fix:
  add: allow configurations to be overriden by command line
  use xstrdup, not strdup in ll-merge.c

Conflicts:
	builtin-add.c
This commit is contained in:
Junio C Hamano 2009-06-20 21:46:38 -07:00
commit 09236d8048
3 changed files with 19 additions and 6 deletions

View File

@ -298,6 +298,8 @@ int cmd_add(int argc, const char **argv, const char *prefix)
int add_new_files; int add_new_files;
int require_pathspec; int require_pathspec;
git_config(add_config, NULL);
argc = parse_options(argc, argv, prefix, builtin_add_options, argc = parse_options(argc, argv, prefix, builtin_add_options,
builtin_add_usage, PARSE_OPT_KEEP_ARGV0); builtin_add_usage, PARSE_OPT_KEEP_ARGV0);
if (patch_interactive) if (patch_interactive)
@ -305,8 +307,6 @@ int cmd_add(int argc, const char **argv, const char *prefix)
if (add_interactive) if (add_interactive)
exit(interactive_add(argc - 1, argv + 1, prefix)); exit(interactive_add(argc - 1, argv + 1, prefix));
git_config(add_config, NULL);
if (edit_interactive) if (edit_interactive)
return(edit_patch(argc, argv, prefix)); return(edit_patch(argc, argv, prefix));
argc--; argc--;

View File

@ -231,7 +231,7 @@ static int read_merge_config(const char *var, const char *value, void *cb)
if (!strcmp(var, "merge.default")) { if (!strcmp(var, "merge.default")) {
if (value) if (value)
default_ll_merge = strdup(value); default_ll_merge = xstrdup(value);
return 0; return 0;
} }
@ -265,7 +265,7 @@ static int read_merge_config(const char *var, const char *value, void *cb)
if (!strcmp("name", ep)) { if (!strcmp("name", ep)) {
if (!value) if (!value)
return error("%s: lacks value", var); return error("%s: lacks value", var);
fn->description = strdup(value); fn->description = xstrdup(value);
return 0; return 0;
} }
@ -288,14 +288,14 @@ static int read_merge_config(const char *var, const char *value, void *cb)
* file named by %A, and signal that it has done with zero exit * file named by %A, and signal that it has done with zero exit
* status. * status.
*/ */
fn->cmdline = strdup(value); fn->cmdline = xstrdup(value);
return 0; return 0;
} }
if (!strcmp("recursive", ep)) { if (!strcmp("recursive", ep)) {
if (!value) if (!value)
return error("%s: lacks value", var); return error("%s: lacks value", var);
fn->recursive = strdup(value); fn->recursive = xstrdup(value);
return 0; return 0;
} }

View File

@ -221,6 +221,19 @@ test_expect_success POSIXPERM 'git add (add.ignore-errors = false)' '
test_must_fail git add --verbose . && test_must_fail git add --verbose . &&
! ( git ls-files foo1 | grep foo1 ) ! ( 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" ' test_expect_success BSLASHPSPEC "git add 'fo\\[ou\\]bar' ignores foobar" '
git reset --hard && git reset --hard &&