Junio C Hamano <gitster@xxxxxxxxx> writes: > Just be honest and say "You may have a branch whose name begins with a '%' > and you cannot refer to it anymore in certain contexts. Too bad. Don't > do it next time you create a new branch". I _can_ buy that argument. > > It however asks for a sane escape hatch. You cannot "fix" such branch > names in most obvious ways (if you could, that would be a bug in this % > feature). > > (1) git branch -m %master percent-master > > We would end up renaming what master tracks to new name. > > (2) git branch percent-master refs/heads/%master; git branch -d %master > > The first part is a good try, but the latter deletes what master > tracks. > > "git update-ref -d refs/heads/%master" needs to replace the second step of > the latter. A naïve question. Has nobody suggested to use a really illegal characters such as ':' instead? After all, we are not talking something that you can use in refspecs but another way to spell branch names. Alternatively, '~master' may have a nice connotation that means "where master calls its home". I haven't looked at the patch deeply yet, but what does the failure case do? I think we should die() if %master is asked for and master is not merging from anywhere by default (similarly, if @{-4} is asked and we haven't switched that many times, we should die(), although I do not remember how I coded that codepath---I presume it's the same codepath you are touching with this round). -- 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