diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-01-17 15:11:07 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-01-17 15:11:07 -0800 |
commit | af04b1171b9ed16f5acce0a49fe3bda518a40b7e (patch) | |
tree | f86d78c39008512fa399fbf20157ffac13d53190 /builtin/push.c | |
parent | Merge branch 'jt/mailinfo-fold-in-body-headers' into maint (diff) | |
parent | push: test pushing ambiguously named branches (diff) | |
download | tgif-af04b1171b9ed16f5acce0a49fe3bda518a40b7e.tar.xz |
Merge branch 'jc/push-default-explicit' into maint
A lazy "git push" without refspec did not internally use a fully
specified refspec to perform 'current', 'simple', or 'upstream'
push, causing unnecessary "ambiguous ref" errors.
* jc/push-default-explicit:
push: test pushing ambiguously named branches
push: do not use potentially ambiguous default refspec
Diffstat (limited to 'builtin/push.c')
-rw-r--r-- | builtin/push.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin/push.c b/builtin/push.c index 3bb9d6b7e6..9307ad56a9 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -194,15 +194,18 @@ static void setup_push_upstream(struct remote *remote, struct branch *branch, die_push_simple(branch, remote); } - strbuf_addf(&refspec, "%s:%s", branch->name, branch->merge[0]->src); + strbuf_addf(&refspec, "%s:%s", branch->refname, branch->merge[0]->src); add_refspec(refspec.buf); } static void setup_push_current(struct remote *remote, struct branch *branch) { + struct strbuf refspec = STRBUF_INIT; + if (!branch) die(_(message_detached_head_die), remote->name); - add_refspec(branch->name); + strbuf_addf(&refspec, "%s:%s", branch->refname, branch->refname); + add_refspec(refspec.buf); } static int is_workflow_triangular(struct remote *remote) |