[PATCH] transport: do not allow to push over git:// protocol
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Oct 1, 2011, 01:26 UTC
- Message-ID
- <1317432415-9459-1-git-send-email-pclouds@gmail.com>
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 <pclouds@gmail.com> --- 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