Re: [PATCH] branch: delete now accepts '-' as branch name
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 16, 2022, 19:41 UTC
- Message-ID
- <xmqqv8xed2f3.fsf@gitster.g>
- In-Reply-To
- <00720bfb-c7b7-aaf2-e846-19b08d7b9cf4@sunshineco.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 18 quoted lines
> On 2/16/22 11:54 AM, Junio C Hamano wrote:
>> From: "Erlend E. Aasland" <erlend.aasland@innova.no>
>>> This makes it easy to get rid of short-lived branches:
>>>
>>> $ git switch -c experiment
>>> $ git switch -
>>> $ git branch -D -
>> Or you can use @{-1} directly. Or short-lived experiment can
>> directly be done on HEAD without any branch ;-)
>> Thanks for trying to make Git better.
>
> Patches implementing this behavior for `git branch -D` have been
> submitted previously but were rejected (if I recall correctly) since
> "delete" is a destructive operation, unlike other cases in which `-`
> is accepted. A relatively recent submission and ensuing discussion is
> at [1].
>
> [1]: https://lore.kernel.org/git/20200501222227.GE41612@syl.local/T/I think the thread around <vpqh944eof7.fsf@anie.imag.fr> is what you have in mind as the origin of
* "-" usually stands for "read from standard input" and using it to mean "the previous branch" is a source of confusion, and cannot be defended with the excuse of "'cd -' is used to go back to where we were" when the command is not going back to that branch (i.e. not "checkout -" or "switch -").
* it is doubly dubious to make it easy to type "-" to cause something destructive.
* on the other hand, since "checkout -" already makes "-" as a
synonym to "@{-1}", not supporting it elsewhere may appear
inconsistent.I personally am sympathetic to the first point, but not that sympathetic to the second one. We made it worse since then by accepting "merge -", which is not about going back, though.