Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > Often, it is quite interesting to inspect the branch tracked by a given > branch. This patch introduces a nice notation to get at the tracked > branch: '%<branch>' can be used to access that tracked branch. > > A special shortcut '%' refers to the branch tracked by the current branch. > > Suggested by Pasky. > > Even if a branch name can legally start with a '%' sign, we can use the > special character '%' here, as you can always specify the full ref: > refs/heads/%my-branch (pointed out by doener on IRC). That is not a good argument, as %<name> is (just like name@{-n} is) a substitute way to spell the "name" of a branch, not just a random SHA-1, and to some commands it makes a difference between <branchname> and refs/heads/<branchname>. The latter is not giving the name of the branch, but merely a commit object name. An most obvious one is that "git checkout branchname" and "git checkout refs/heads/branchname" behave differently. You cannot checkout a branch called %master after this patch goes in. 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. -- 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