Re: [PATCH v4] Introduce %<branch> as shortcut to the tracked branch
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:26
Junio C Hamano [off-list ref] 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).