author | Junio C Hamano <gitster@pobox.com> | |
Wed, 10 Feb 2010 21:02:05 +0000 (13:02 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 10 Feb 2010 21:02:05 +0000 (13:02 -0800) |
* jh/maint-config-file-prefix:
builtin-config: Fix crash when using "-f <relative path>" from non-root dir
builtin-config: Fix crash when using "-f <relative path>" from non-root dir
1 | 2 | |||
---|---|---|---|---|
builtin-config.c | patch | | diff1 | | diff2 | | blob | history |
t/t1300-repo-config.sh | patch | | diff1 | | diff2 | | blob | history |
diff --combined builtin-config.c
index a2d656edb383da47fb3622f1f7c2d1524285ac00,5a5d214bb84c8eefa7ce9a1ca55c5689ce698af5..78724fbf7dd8e2174ac8cc199241641289383c7f
--- 1/builtin-config.c
--- 2/builtin-config.c
+++ b/builtin-config.c
config_exclusive_filename = getenv(CONFIG_ENVIRONMENT);
- argc = parse_options(argc, argv, builtin_config_options, builtin_config_usage,
+ argc = parse_options(argc, argv, prefix, builtin_config_options,
+ builtin_config_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
if (use_global_config + use_system_config + !!given_config_file > 1) {
if (!is_absolute_path(given_config_file) && prefix)
config_exclusive_filename = prefix_filename(prefix,
strlen(prefix),
- argv[2]);
+ given_config_file);
else
config_exclusive_filename = given_config_file;
}
check_argc(argc, 0, 0);
if (git_config(show_all_config, NULL) < 0) {
if (config_exclusive_filename)
- die("unable to read config file %s: %s",
- config_exclusive_filename, strerror(errno));
+ die_errno("unable to read config file '%s'",
+ config_exclusive_filename);
else
die("error processing config file(s)");
}
diff --combined t/t1300-repo-config.sh
index 83b7294010cd59d5438b6020868c699c01105595,c81ccf2e56659b41787b9da69acbb3bf9f44f984..9e74b1f1415822c758ccc81bd4f12dc15a16eaee
+++ b/t/t1300-repo-config.sh
test_expect_success 'alternative GIT_CONFIG (--file)' \
'git config --file other-config -l > output && cmp output expect'
+ test_expect_success 'refer config from subdirectory' '
+ mkdir x &&
+ (
+ cd x &&
+ echo strasse >expect
+ git config --get --file ../other-config ein.bahn >actual &&
+ test_cmp expect actual
+ )
+
+ '
+
GIT_CONFIG=other-config git config anwohner.park ausweis
cat > expect << EOF
test_expect_success "rename succeeded" "test_cmp expect .git/config"
+cat >> .git/config << EOF
+[branch "vier"] z = 1
+EOF
+
+test_expect_success "rename a section with a var on the same line" \
+ 'git config --rename-section branch.vier branch.zwei'
+
+cat > expect << EOF
+# Hallo
+ #Bello
+[branch "zwei"]
+ x = 1
+[branch "zwei"]
+ y = 1
+[branch "drei"]
+weird
+[branch "zwei"]
+ z = 1
+EOF
+
+test_expect_success "rename succeeded" "test_cmp expect .git/config"
+
cat >> .git/config << EOF
[branch "zwei"] a = 1 [branch "vier"]
EOF
test_expect_success '--null --get-regexp' 'cmp result expect'
+test_expect_success 'inner whitespace kept verbatim' '
+ git config section.val "foo bar" &&
+ test "z$(git config section.val)" = "zfoo bar"
+'
+
test_expect_success SYMLINKS 'symlinked configuration' '
ln -s notyet myconfig &&