Hi Phillip and Junio On Sun, Feb 25, 2024 at 10:57 AM <phillip.wood123@xxxxxxxxx> wrote: > On 23/02/2024 06:58, Brian Lyles wrote: >> I think I'm on board with leaving `--keep-redundant-commits` alone. I'm >> on the fence about having `--empty=keep` imply `--allow-empty` after >> seeing Junio's concerns. I laid out the options that I see in a reply to >> patch 6/8[1] and would appreciate input there. I'll adjust the details >> of this commit in v3 based on what we decide there. > > I'll take a look at that in the next couple of days > >> [1]: https://lore.kernel.org/git/17b666ca6c4b7561.70b1dd9aae081c6e.203dcd72f6563036@zivdesk/ I'm not quite sure what happened here, but it seems that: - The above link is to the wrong email, and - The email I meant to link to isn't showing up in the archive for some reason, despite clearly showing as sent in my mailbox Apologies for the confusion -- I'm not sure what happened. In an attempt to keep this conversation on track, I've copied my original attempted reply to Phillip's[2] and Junio's[3] replies below. [2]: https://lore.kernel.org/git/3f276e10-7b03-4480-a157-47a7648e7f19@xxxxxxxxx/ [3]: https://lore.kernel.org/git/xmqqwmqwcpf7.fsf@gitster.g/ On Fri, Feb 23, 2024 at 12:08 AM Brian Lyles <brianmlyles@xxxxxxxxx> wrote: > > On Thu, Feb 22, 2024 at 10:35 AM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote: > > > I agree that if we were starting from scratch there would be no reason > > to tie --apply-empty and --keep-redundant-commits together but I'm not > > sure it is worth the disruption of changing it now. We're about to add > > empty=keep which won't imply --allow-empty for anyone who wants that > > behavior and I still tend to think the practical effect of implying > > --allow-empty with --keep-redundant-commits is largely beneficial as I'm > > skeptical that users want to keep commits that become empty but not the > > ones that started empty. > > I think that's fair. I am okay dropping this potentially disruptive > change. > > It sounds like you are on board with `--empty=keep` not having the same > implication? > > That said... > > On Thu, Feb 22, 2024 at 12:41 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > > I do not quite see a good reason to do the opposite, dropping > > commits that started out as empty but keeping the ones that have > > become empty. Such a behaviour has additional downside that after > > such a cherry-pick, when you cherry-pick the resulting history onto > > yet another base, your precious "were not empty but have become so > > during the initial cherry-pick" commits will appear as commits that > > were empty from the start. So I do not see much reason to allow the > > decoupling, even with the new "empty=keep" thing that does not imply > > "allow-empty". > > Junio -- can you clarify this part? > > > So I do not see much reason to allow the decoupling, even with the new > > "empty=keep" thing that does not imply "allow-empty" > > I'm not 100% sure if you are saying that you want `--empty=keep` to > *also* imply `--allow-empty`, or that you simply want > `--keep-redundant-commits` to continue implying `--allow-empty` > *despite* the new `--empty=keep` no implying the same. > > On the one hand, I agree with Phillip's sentiment of "if we were > starting from scratch there would be no reason to tie --apply-empty and > --keep-redundant-commits together" (though your points perhaps provide > such a reason). On the other, if both `--keep-redundant-commits` and > `--empty=keep` behave the same way, it makes sense to soft-deprecate > `--keep-redundant-commits` as I have currently done later in this > series. If they do not behave the same way, that deprecation makes less > sense and we have two very similar (but not quite identical) options. > > Just to make sure we're on the same page, the options I see are: > > - (A): Neither `--keep-redundant-commits` nor `--empty=keep` imply > `--allow-empty`, `--keep-redundant-commits` is soft-deprecated > - (B): Both `--keep-redundant-commits` and `--empty=keep` imply > `--allow-empty`, `--keep-redundant-commits` is soft-deprecated > - (C): Both `--keep-redundant-commits` and `--empty=keep` imply > `--allow-empty`, `--keep-redundant-commits` is *not* soft-deprecated > as it is more descriptive as noted by Junio here[1] > - (D): `--keep-redundant-commits` continues to imply `--allow-empty` but > `--empty=keep` does not. `--keep-redundant-commits` is *not* > soft-deprecated as it behaves differently. > > (A) represents this v2 of the patch. > > I'm coming around to (B) based on Junio's workflow concerns, but to be > honest I am fine with any of these options. Junio, I *think* you're > saying you'd prefer (B) or (C)? Phillip, it sounds like you are okay > with (D) based on your response -- how do you feel about (B)? > > [1]: https://lore.kernel.org/git/xmqq8r4gnd3c.fsf@gitster.g/ Thank you both for your review and insight! -- Thank you, Brian Lyles