[PATCH] transport: do not allow to push over git:// protocol
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:52:09
Subsystem:
the rest · Maintainer:
Linus Torvalds
This protocol has never been designed for pushing. Attempts to push over git:// usually result in fatal: The remote end hung up unexpectedly That message does not really point out the reason. With this patch, we get error: this protocol does not support pushing error: failed to push some refs to 'git://some-host.com/my/repo' Signed-off-by: Nguyễn Thái Ngọc Duy <redacted> --- I wanted to advise using remote.*.pushurl too, more friendly. But then I had to detect if url comes from command line or config, and I gave up. transport.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/transport.c b/transport.c
index fa279d5..b109145 100644
--- a/transport.c
+++ b/transport.c@@ -933,7 +933,8 @@ struct transport *transport_get(struct remote *remote, const char *url) ret->set_option = NULL; ret->get_refs_list = get_refs_via_connect; ret->fetch = fetch_refs_via_pack; - ret->push_refs = git_transport_push; + if (prefixcmp(url, "git://")) + ret->push_refs = git_transport_push; ret->connect = connect_git; ret->disconnect = disconnect_git; ret->smart_options = &(data->options);
@@ -1075,6 +1076,8 @@ int transport_push(struct transport *transport, return ret; } + else + return error("this protocol does not support pushing"); return 1; }
--
1.7.3.1.256.g2539c.dirty