Re: [PATCH v2] branch: implement shortcut to delete last branch
- From
git@matthieu-moy.fr <git@matthieu-moy.fr>
- Date
- Mar 26, 2018, 12:41 UTC
- Message-ID
- <86r2o7nh4i.fsf@matthieu-moy.fr>
- In-Reply-To
- <20180326081036.GA18714@sigill.intra.peff.net>
Thanks for Cc-ing me, and sorry for not being very responsive these days :-\.
Jeff King writes:
Show 14 quoted lines
> On Fri, Mar 23, 2018 at 10:40:34PM +0000, Aaron Greenberg wrote: > >> I can appreciate Matthieu's points on the use of "-" in destructive >> commands. As of this writing, git-merge supports the "-" shorthand, >> which while not destructive, is at least _mutative_. Also, >> "git branch -d" is not destructive in the same way that "rm -rf" is >> destructive since you can recover the branch using the reflog. > > There's a slight subtlety there with the reflog, because "branch -d" > actually _does_ delete the reflog for the branch. By definition if > you've found the branch with "-" then it was just checked out, so you at > least have the old tip. But the branch's whole reflog is gone for good. > > That said, I'd still be OK with it.
I don't have objection either.
Anyway, we're supporting this "-" shortcut in more and more commands (partly because it's a nice microproject, but it probably makes sense), so the "consistency" argument becomes more and more important, and is probably more important than the (relative) safety of not having the shortcut.
Show 12 quoted lines
>> One thing to consider is that approval of this patch extends the >> implementation of the "-" shorthand in a piecemeal, rather than >> consistent, way (implementing it in a consistent way was the goal of >> the patch set you mentioned in your previous email.) Is that okay? Or >> is it better to pick up the consistent approach where it was left? > > I don't have a real opinion on whether it should be implemented > everywhere or not. But IMHO it's OK to do it piecemeal for now either > way, unless we're really sure it's time to move to respecting it > everywhere. Because we can always convert a > piecemeal-but-covers-everything state to centralized parsing as a > cleanup.
Not sure whether it's already been mentionned here, but a previous attempt is here:
https://public-inbox.org/git/1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com/
My understanding is that the actual code is quite straightforward, but 1) it needs a few cleanup patches to be done correctly, and 2) there are corner-cases to deal with like avoiding a commit message like "merge branch '-' into 'foo'". Regarding 2), any piecemeal implementation with proper tests is a step in the right direction.
-- Matthieu Moy https://matthieu-moy.fr/