{"thread":{"id":"51716","subject":"[RFC] Add config option corresponding to --rebase-merges","startedAt":"2019-08-23T17:19:57Z","lastAt":"2019-08-26T14:51:04Z","messageCount":4,"participants":["Dakota Hawkins","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"381021","messageId":"CAHnyXxScGO6Eex_AEbgH=YFQ2yzY1hnXavyNMkiXbrccVUA=Ug@mail.gmail.com","threadId":"51716","inReplyTo":null,"subject":"[RFC] Add config option corresponding to --rebase-merges","fromName":"Dakota Hawkins","fromEmail":"dakota@dakotahawkins.com","sentAt":"2019-08-23T17:19:45Z","receivedAt":"2019-08-23T17:19:57Z","isPatch":false,"sender":{"key":"dakota@dakotahawkins.com","avatar":null},"body":"I'd like to work on a patch to add config options that correspond to\nrebase's --rebase-merges flag.\n\nIn my workflow, while it's uncommon to encounter merge commits during\na rebase operation, when they are encountered I pretty much always\nwant this behavior. Since it's rare, I pretty much always forget to\nask for it, with interesting and confusing consequences.\n\nIf nobody has any opposition to the concept, the following are the\nspecific options and values that I think makes sense and covers the\nexisting functionality.\n\n# New rebase.merges config that takes effect if set to true or cousins\n+ rebase.merges=\n+   true\n+   cousins\n\n# New cousins value for pull.rebase\npull.rebase=\n+   cousins\n\n# New pull.rebaseMerges config that takes effect if set to true or\n# cousins. Intended to allow pull.rebase to be set to interactive.\n+ pull.rebaseMerges=\n+   true\n+   cousins\n\n# Corresponding additions for branch.<name> config\nbranch.<name>.rebase=\n+   cousins\nbranch.<name>.rebaseMerges=\n+   true\n+   cousins\n\nI'd like to get feedback on the idea and specific options proposed,\nif only to avoid having to tweak them once they've been added.\n\nThanks,\n\nDakota Hawkins\n"},{"id":"381072","messageId":"CAHnyXxRTrx+7djrbGJ7uwyRTLkCmtet-t-dn=beeyWkdLGFx4Q@mail.gmail.com","threadId":"51716","inReplyTo":"CAHnyXxScGO6Eex_AEbgH=YFQ2yzY1hnXavyNMkiXbrccVUA=Ug@mail.gmail.com","subject":"Re: [RFC] Add config option corresponding to --rebase-merges","fromName":"Dakota Hawkins","fromEmail":"dakota@dakotahawkins.com","sentAt":"2019-08-24T21:59:53Z","receivedAt":"2019-08-24T22:00:20Z","isPatch":false,"sender":{"key":"dakota@dakotahawkins.com","avatar":null},"body":"I think it would also be prudent to add the following:\n\n# Auto-config option values for new branches\nbranch.autoSetupRebase=\n+   localCousins\n+   remoteCousins\n+   alwaysCousins\n"},{"id":"381174","messageId":"nycvar.QRO.7.76.6.1908261615440.46@tvgsbejvaqbjf.bet","threadId":"51716","inReplyTo":"CAHnyXxScGO6Eex_AEbgH=YFQ2yzY1hnXavyNMkiXbrccVUA=Ug@mail.gmail.com","subject":"Re: [RFC] Add config option corresponding to --rebase-merges","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2019-08-26T14:19:03Z","receivedAt":"2019-08-26T14:19:22Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Dakota,\n\nOn Fri, 23 Aug 2019, Dakota Hawkins wrote:\n\n> I'd like to work on a patch to add config options that correspond to\n> rebase's --rebase-merges flag.\n>\n> In my workflow, while it's uncommon to encounter merge commits during\n> a rebase operation, when they are encountered I pretty much always\n> want this behavior. Since it's rare, I pretty much always forget to\n> ask for it, with interesting and confusing consequences.\n>\n> If nobody has any opposition to the concept, the following are the\n> specific options and values that I think makes sense and covers the\n> existing functionality.\n\nI am in favor of this, as indicated at\nhttps://github.com/gitgitgadget/git/issues/318\n\n> # New rebase.merges config that takes effect if set to true or cousins\n> + rebase.merges=\n> +   true\n> +   cousins\n>\n> # New cousins value for pull.rebase\n> pull.rebase=\n> +   cousins\n>\n> # New pull.rebaseMerges config that takes effect if set to true or\n> # cousins. Intended to allow pull.rebase to be set to interactive.\n> + pull.rebaseMerges=\n> +   true\n> +   cousins\n>\n> # Corresponding additions for branch.<name> config\n> branch.<name>.rebase=\n> +   cousins\n> branch.<name>.rebaseMerges=\n> +   true\n> +   cousins\n>\n> I'd like to get feedback on the idea and specific options proposed,\n> if only to avoid having to tweak them once they've been added.\n\nI am not quite sure about the \"cousins\" thing. If at all, I would make\nthat a global option, I think. But then, maybe you have a use case in\nmind where it would make sense to rebase cousins in some, but not in\nother cases, cases that can be discerned via branch names?\n\nCiao,\nJohannes\n"},{"id":"381184","messageId":"CAHnyXxQ46TC8hhjwLS-OtXzEDHaKxvCxj9HZMrs-ksnXFTxj_Q@mail.gmail.com","threadId":"51716","inReplyTo":"nycvar.QRO.7.76.6.1908261615440.46@tvgsbejvaqbjf.bet","subject":"Re: [RFC] Add config option corresponding to --rebase-merges","fromName":"Dakota Hawkins","fromEmail":"dakota@dakotahawkins.com","sentAt":"2019-08-26T14:50:50Z","receivedAt":"2019-08-26T14:51:04Z","isPatch":false,"sender":{"key":"dakota@dakotahawkins.com","avatar":null},"body":"> I am not quite sure about the \"cousins\" thing. If at all, I would make\n> that a global option, I think. But then, maybe you have a use case in\n> mind where it would make sense to rebase cousins in some, but not in\n> other cases, cases that can be discerned via branch names?\n\nI wasn't sure about that either (in fact I don't think I knew it existed before\nlooking in to this), but I included it here in an attempt to be \"symmetrical\"\nwith the --rebase-merges flag functionality.\n\nBoth pull.rebase and branch.<name>.rebase support the value \"merges\", so I\nthink a rebase.merges config boolean is at least a no-brainer. In this case,\nthough, it concerns me that you can set these to either \"interactive\" or\n\"merges\", so there's no way to have both. That's why I also suggest adding a\n\".rebaseMerges\" option to these (to allow .rebase=interactive).\n\nI could imagine that there exists some workflows where\n--rebase-merges=rebase-cousins might be desired either globally or for certain\nbranches, though I don't think it's something I'd use myself. I really need to\nplay around with it in a test repo to better understand its implications.\n\nThis is the kind of feedback I was hoping for, though. I'd be amenable to\nadding only the simple option (if there's any kind of consensus on that) since\nthat's the one I really want to use myself.\n\nThanks!\n\nDakota\n\nOn Mon, Aug 26, 2019 at 10:19 AM Johannes Schindelin\n<Johannes.Schindelin@gmx.de> wrote:\n>\n> Hi Dakota,\n>\n> On Fri, 23 Aug 2019, Dakota Hawkins wrote:\n>\n> > I'd like to work on a patch to add config options that correspond to\n> > rebase's --rebase-merges flag.\n> >\n> > In my workflow, while it's uncommon to encounter merge commits during\n> > a rebase operation, when they are encountered I pretty much always\n> > want this behavior. Since it's rare, I pretty much always forget to\n> > ask for it, with interesting and confusing consequences.\n> >\n> > If nobody has any opposition to the concept, the following are the\n> > specific options and values that I think makes sense and covers the\n> > existing functionality.\n>\n> I am in favor of this, as indicated at\n> https://github.com/gitgitgadget/git/issues/318\n>\n> > # New rebase.merges config that takes effect if set to true or cousins\n> > + rebase.merges=\n> > +   true\n> > +   cousins\n> >\n> > # New cousins value for pull.rebase\n> > pull.rebase=\n> > +   cousins\n> >\n> > # New pull.rebaseMerges config that takes effect if set to true or\n> > # cousins. Intended to allow pull.rebase to be set to interactive.\n> > + pull.rebaseMerges=\n> > +   true\n> > +   cousins\n> >\n> > # Corresponding additions for branch.<name> config\n> > branch.<name>.rebase=\n> > +   cousins\n> > branch.<name>.rebaseMerges=\n> > +   true\n> > +   cousins\n> >\n> > I'd like to get feedback on the idea and specific options proposed,\n> > if only to avoid having to tweak them once they've been added.\n>\n> I am not quite sure about the \"cousins\" thing. If at all, I would make\n> that a global option, I think. But then, maybe you have a use case in\n> mind where it would make sense to rebase cousins in some, but not in\n> other cases, cases that can be discerned via branch names?\n>\n> Ciao,\n> Johannes\n"}]}