On Mon, Feb 27, 2017 at 4:53 PM, Jeff King <peff@xxxxxxxx> wrote: > On Mon, Feb 27, 2017 at 04:33:36PM -0800, Junio C Hamano wrote: > >> A flag to affect the behaviour (as opposed to &flag as a secondary >> return value, like Peff's patch does) can be made to work. Perhaps >> a flag that says "keep the input as is if the result is not a local >> branch name" would pass an input "@" intact and that may be >> sufficient to allow "git branch -m @" to rename the current branch >> to "@" (I do not think it is a sensible rename, though ;-). But >> probably some callers need to keep the original input and compare >> with the result to see if we expanded anything if we go that route. >> At that point, I am not sure if there are much differences in the >> ease of use between the two approaches. > > I just went into more detail in my reply to Jacob, but I do think this > is a workable approach (and fortunately we seem to have banned bare "@" > as a name, along with anything containing "@{}", so I think we would end > up rejecting these nonsense names). > > I'll see if I can work up a patch. We'll still need to pass the flag > around through the various functions, but at least it will be a flag and > not a confusing negated out-parameter. > > -Peff Yes, this is pretty much what I had imagined. I look forward to seeing the patch. Thanks, Jake