summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connect.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/connect.c b/connect.c
index 7945e38ac1..5145d1620c 100644
--- a/connect.c
+++ b/connect.c
@@ -523,12 +523,18 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
c = ':';
}
+ /*
+ * Don't do destructive transforms with git:// as that
+ * protocol code does '[]' dewrapping of its own.
+ */
if (host[0] == '[') {
end = strchr(host + 1, ']');
if (end) {
- *end = 0;
+ if (protocol != PROTO_GIT) {
+ *end = 0;
+ host++;
+ }
end++;
- host++;
} else
end = host;
} else