On Tue, Jan 14, 2014 at 03:45:27PM -0800, Junio C Hamano wrote:

> > Yet 'git check-ref-format --branch @mybranch@{u}' 
> > claims @mybranch is an invalid branch name.
> 
> I do not think it claims any such thing.
> 
>     $ git check-ref-format --branch @foo@{u}; echo $?
>     fatal: '@foo@{u}' is not a valid branch name
>     128
>     $ git check-ref-format --branch @foo; echo $?
>     @foo
>     0
> 
> The former asks "Is the string '@foo@{u}' a suitable name to give a
> branch?" and the answer is no.  The latter asks the same question
> about the string '@foo', and the answer is yes.

Is that what "--branch" does? I have never used it, but the manpage
seems to suggest it is about _parsing_ (which, IMHO, means it probably
should have been an option to rev-parse, but that is another issue
altogether).

So a more interesting output than the above is:
 
  $ git checkout -t -b @mybranch origin/master
  Branch @mybranch set up to track remote branch master from origin.
  Switched to a new branch '@mybranch'

  $ git check-ref-format --branch @mybranch@{u}; echo $?
  fatal: '@mybranch@{u}' is not a valid branch name
  128

  $ git check-ref-format --branch HEAD@{u}; echo $?
  origin/master
  0

So "check-ref-format --branch" does understand @{u} syntax. But it
doesn't like @mybranch@{u}. You can see the same problem with rev-parse:

  $ git rev-parse --symbolic-full-name HEAD@{u}
  refs/remotes/origin/master
  $ git rev-parse --symbolic-full-name @mybranch@{u}
  @mybranch@{u}
  fatal: ambiguous argument '@mybranch@{u}': unknown revision or path
  not in the working tree.

So I do think there is a bug. The interpret_branch_name parser somehow
gets confused by the "@" in the name.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to