diff options
authorJohannes Schindelin <>2014-12-23 13:25:05 (GMT)
committerJunio C Hamano <>2014-12-23 20:42:36 (GMT)
commitfb86e32dcc9ed07ee2f1df6aafbf34d469007b1f (patch)
parentbbcefffcea9789e4a1a2023a1c778e2c07db77a7 (diff)
git remote: allow adding remotes agreeing with url.<...>.insteadOf
When adding a remote, we make sure that the remote does not exist already. However, this test was not quite correct: when the url.<...>.insteadOf config variable was set to the remote name to be added, the code would assume that the remote exists already. Let's allow adding remotes when there is a url.<...>.insteadOf setting when both the name and the URL agree with the remote to be added. It might seem like a mistake to compare against remote->url[0] without verifying that remote->url_nr >=1, but at this point a missing URL has been filled by the name already, therefore url_nr cannot be zero. Noticed by Anastas Dancha. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin/remote.c b/builtin/remote.c
index 46ecfd9..b4ff468 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -180,7 +180,9 @@ static int add(int argc, const char **argv)
url = argv[1];
remote = remote_get(name);
- if (remote && (remote->url_nr > 1 || strcmp(name, remote->url[0]) ||
+ if (remote && (remote->url_nr > 1 ||
+ (strcmp(name, remote->url[0]) &&
+ strcmp(url, remote->url[0])) ||
die(_("remote %s already exists."), name);