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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html