Felipe Contreras wrote: > @@ -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? p.s- Good to see you back on the list :) -- 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