Re: [PATCH] branch: allow "-" as a short-hand for "previous branch"
- From
Rubén Justo <rjusto@gmail.com>
- Date
- Aug 13, 2022, 09:08 UTC
- Message-ID
- <8b00e461-dbf2-1bd8-f9bd-b4c5673dd450@gmail.com>
- In-Reply-To
- <s7862q69-05o8-s5s8-n635-823s34q358q4@tzk.qr>
Hi Johannes,
Thanks for the /allow!
On Mon, Aug 8, 2022 at 3:26 PM Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 21 quoted lines
> Touching only the `delete_branches()` function suggests that other
> commands are left as before, e.g. `git branch --unset-upstream -` would
> probably fail.
>
> That's fine, but the commit message claims that the `"-"` special-casing
> is introduced for the `git branch` command, not just for `git branch -d`.
>
>> die(_("Couldn't look up commit object for HEAD"));
>> }
> At this stage, we already handled the `--remotes` flag, therefore I think
> that this patch does not do the intended thing for this command-line:
>
> git branch -d --remotes -
>
>> + if ((argc == 1) && !strcmp(argv[0], "-")) {
>> + argv[0] = "@{-1}";
>> + }
> This means that we only handle `git branch -d -`, but not `git branch -d
> some-branch - some-other-branch`.
>
> Could you fix that?I did it on purpose, to be interpreted in the context of "git branch -d/D" with just one branch: "previous branch". I agree the commit message does not suggest this, I can fix it.
My intention is a short-hand for "delete previous branch", the same way "git merge -" is "merge previous branch".
The workflow to address is just allow doing:
$ git checkout work_to_review $ git checkout - $ git merge - $ git branch -d -
Instead of:
$ git checkout work_to_review $ git checkout - $ git merge - $ git branch -d work_to_review
The syntax @{-1} is hard for me to write, and I feel intuitive "-", like in "cd -".
Make sense to me...