Re: [PATCH v2 9/9] sha1_name: add support for @{publish} marks
From: Felipe Contreras <hidden>
Date: 2016-06-15 23:00:40
Ramkumar Ramachandra wrote:
Felipe Contreras wrote:quoted
@@ -1068,23 +1069,35 @@ static const char *get_upstream_branch(const char *name_buf, int len) */ if (!branch) die(_("HEAD does not point to a branch")); - if (!branch->merge || !branch->merge[0]->dst) { - if (!ref_exists(branch->refname)) - die(_("No such branch: '%s'"), name); - if (!branch->merge) { - die(_("No upstream configured for branch '%s'"), - branch->name); + switch (type) { + case 'u': + if (!branch->merge || !branch->merge[0]->dst) { + if (!ref_exists(branch->refname)) + die(_("No such branch: '%s'"), name); + if (!branch->merge) { + die(_("No upstream configured for branch '%s'"), + branch->name); + } + die( + _("Upstream branch '%s' not stored as a remote-tracking branch"), + branch->merge[0]->src); + } + tracking = branch->merge[0]->dst; + break; + case 'p': + if (!branch->push.dst) { + die(_("No publish configured for branch '%s'"), + branch->name);This assumes a push.default value of 'current' or 'matching'. What happens if push.default is set to 'nothing' or 'upstream', for instance?
Why would that matter? @{upstream} doesn't depend on this, neither does
@{publish}; @{upstream} is .remote+.merge, @{publish} is .pushremote+.push.
If the user hasn't configured a publish branch, @{publish} fails.
--
Felipe Contreras