Previous rounds are at $gmane/286214 and $gmane/286278. Thanks to Peff and Eric for the reviews on the previous round. This version changes two checks in [1/4], and uses test_config in the tests instead of calling git config directly. Interdiff below: diff --git a/remote.c b/remote.c index d10ae00..f001681 100644 --- a/remote.c +++ b/remote.c @@ -358,17 +358,17 @@ static int handle_config(const char *key, const char *value, void *cb) return 0; /* Handle remote.* variables */ - if (!strcmp(subkey, "pushdefault")) + if (!name && !strcmp(subkey, "pushdefault")) return git_config_string(&pushremote_name, key, value); + if (!name) + return 0; /* Handle remote.<name>.* variables */ - if (*(name ? name : subkey) == '/') { + if (*name == '/') { warning("Config remote shorthand cannot begin with '/': %s", - name ? name : subkey); + name); return 0; } - if (!name) - return 0; remote = make_remote(name, namelen); remote->origin = REMOTE_CONFIG; if (!strcmp(subkey, "mirror")) diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index 142ae62..94079a0 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -158,18 +158,15 @@ test_expect_success 'rename errors out early when deleting non-existent branch' ' test_expect_success 'add existing foreign_vcs remote' ' - git config --add remote.foo.vcs "bar" && - test_when_finished git remote rm foo && + test_config remote.foo.vcs bar && echo "fatal: remote foo already exists." >expect && test_must_fail git remote add foo bar 2>actual && test_i18ncmp expect actual ' test_expect_success 'add existing foreign_vcs remote' ' - git config --add remote.foo.vcs "bar" && - git config --add remote.bar.vcs "bar" && - test_when_finished git remote rm foo && - test_when_finished git remote rm bar && + test_config remote.foo.vcs bar && + test_config remote.bar.vcs bar && echo "fatal: remote bar already exists." >expect && test_must_fail git remote rename foo bar 2>actual && test_i18ncmp expect actual Thomas Gummerer (4): remote: use parse_config_key remote: simplify remote_is_configured() remote: actually check if remote exits remote: use remote_is_configured() for add and rename builtin/fetch.c | 5 ++-- builtin/remote.c | 23 +++++++--------- remote.c | 82 +++++++++++++++++++++++-------------------------------- remote.h | 3 +- t/t5505-remote.sh | 33 ++++++++++++++++++++++ 5 files changed, 81 insertions(+), 65 deletions(-) -- 2.7.1.410.g6faf27b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html