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@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html