git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/4] Make git-pull give hints on what to do when there is no branch to merge from

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 18, 2007, 23:00 UTC
Message-ID
<7vsl5btw80.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1190077948.22387.66.camel@cacharro.xalalinux.org>
Federico Mena Quintero <federico@novell.com> writes:
Show 19 quoted lines
> Signed-off-by: Federico Mena Quintero <federico@gnu.org>
> ---
>  git-pull.sh |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/git-pull.sh b/git-pull.sh
> index 5e96d1f..7beef4d 100755
> --- a/git-pull.sh
> +++ b/git-pull.sh
> @@ -98,7 +98,11 @@ case "$merge_head" in
>  	curr_branch=${curr_branch#refs/heads/}
>  
>  	echo >&2 "Warning: No merge candidate found because value of config option
> -         \"branch.${curr_branch}.merge\" does not match any remote branch fetched."
> +         \"branch.${curr_branch}.merge\" does not match any remote branch fetched.
> +         This branch is not set up to track any other branches.  Please name which
> +         branch you want to merge from on the command line, or if you almost always
> +         want to merge from the same branch, then set this up with
> +         \"git branch --track\"."

This is a nice attempt, but can you use "git branch --track" to set this? What does the command line look like?

This error can come when branch.<foo>.merge does not match what remote.<bar>.fetch says (where branch.<foo>.remote is <bar>), but it is my understanding that the builtin-fetch work by Daniel and Shawn would fetch branch.<foo>.merge as well to reduce this error. Another possibility is when the user does not have any branch.<foo>.merge.

I am inclined to suggest rewording the message like this, and make this condition an error (i.e. "exit 1"):

    You asked me to pull without telling me which branch you
    want to merge with, and 'branch.${curr_branch}.merge' in
    your configuration file does not tell me either.  Please
    name which branch you want to merge on the command line and
    try again.
    If you often merge with the same branch, you may want to
    configure the following variables in your configuration
    file:
	branch.${curr_branch}.remote = <nickname>
	branch.${curr_branch}.merge = <remote-ref>
        remote.<nickname>.url = <url>
        remote.<nickname>.fetch = <refspec>
    See git-config(1) for details.
Previous: Federico Mena Quintero
Message 13 of 13 in “Make the documentation consistent for --track and --notrack”
  1. 0/4 Make the documentation consistent for --track and --notrackFederico Mena Quintero, Sep 18, 2007
  2. 1/4 Mention that git-branch will not automatically check out the new branchFederico Mena Quintero, Sep 18, 2007
  3. 2/4 Copy the docs for --track and --notrack from git-checkout to git-branchFederico Mena Quintero, Sep 18, 2007
  4. 3/4 Mention the parameters that git-pull would need to be equivalent to a --track in the git-checkout docsFederico Mena Quintero, Sep 18, 2007
  5. Junio C HamanoSep 18, 2007
  6. 0/4 Another round of the --track patchesFederico Mena Quintero, Oct 2, 2007
  7. 1/4 Say when --track is useful in the git-checkout docs.Federico Mena Quintero, Oct 2, 2007
  8. 1/4 Add documentation for --track and --no-track to the git-branch docs.Federico Mena Quintero, Oct 2, 2007
  9. Federico Mena QuinteroOct 2, 2007
  10. 3/4 Note that git-branch will not automatically checkout the new branchFederico Mena Quintero, Oct 2, 2007
  11. 4/4 Make git-pull complain and give advice when there is nothing to pull fromFederico Mena Quintero, Oct 2, 2007
  12. 4/4 Make git-pull give hints on what to do when there is no branch to merge fromFederico Mena Quintero, Sep 18, 2007
  13. Junio C HamanoSep 18, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.