push: factor out the detached HEAD error message

With push.default set to upstream or simple, and a detached HEAD, git
push prints the following error:

  $ git push
  fatal: You are not currently on a branch.
  To push the history leading to the current (detached HEAD)
  state now, use

    git push ram HEAD:<name-of-remote-branch>

This error is not unique to upstream or simple: current cannot push with
a detached HEAD either.  So, factor out the error string in preparation
for using it in current.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ramkumar Ramachandra 2013-05-30 00:51:49 +05:30 committed by Junio C Hamano
parent edca415256
commit 35ee69c0f6

View File

@ -113,17 +113,19 @@ static NORETURN int die_push_simple(struct branch *branch, struct remote *remote
remote->name, branch->name, advice_maybe); remote->name, branch->name, advice_maybe);
} }
static const char message_detached_head_die[] =
N_("You are not currently on a branch.\n"
"To push the history leading to the current (detached HEAD)\n"
"state now, use\n"
"\n"
" git push %s HEAD:<name-of-remote-branch>\n");
static void setup_push_upstream(struct remote *remote, int simple) static void setup_push_upstream(struct remote *remote, int simple)
{ {
struct strbuf refspec = STRBUF_INIT; struct strbuf refspec = STRBUF_INIT;
struct branch *branch = branch_get(NULL); struct branch *branch = branch_get(NULL);
if (!branch) if (!branch)
die(_("You are not currently on a branch.\n" die(_(message_detached_head_die), remote->name);
"To push the history leading to the current (detached HEAD)\n"
"state now, use\n"
"\n"
" git push %s HEAD:<name-of-remote-branch>\n"),
remote->name);
if (!branch->merge_nr || !branch->merge || !branch->remote_name) if (!branch->merge_nr || !branch->merge || !branch->remote_name)
die(_("The current branch %s has no upstream branch.\n" die(_("The current branch %s has no upstream branch.\n"
"To push the current branch and set the remote as upstream, use\n" "To push the current branch and set the remote as upstream, use\n"