if everyone wants a centralized linear history so badly, why not just go back to using subversion?
On Mon, Oct 19, 2020 at 5:18 PM David Smiley <dsmi...@apache.org> wrote: > I ask you all to do the following: > > git config --global pull.rebase true > > > Perhaps you have already set it as such (this retrieves the current > setting, possibly a default): > > git config pull.rebase > > -> true > > > *What*: As the setting implies, this has to do with what happens on a > "pull", but in practice it shows up in a typical workflow on a "push" > because some "pushes" need to "pull". When pushes do a pull, it's because > the remote branch (e.g. master or branch_8x) has advanced beyond the point > that you had committed from. Git will either (A) generate a merge commit > between the latest head and your commit (the default behavior) generating a > bifurcation in the history, or (b) it will rebase your commit(s) on top of > the new head (what I propose) thus producing a linear history. In either > case, there may be a conflict which you'll have to resolve. > > *Why?*: To make our history easier to understand as seen via "git log" > and in our IDEs and online. I don't know about you all, but I find those > visual branch bifurcations to be a distracting annoyance that is more > obfuscating than linear history. I don't think that merge commits are > altogether bad, I'd just prefer that they happen in exceptional > circumstances instead of common ones. > > *Why not?:* In full disclosure, I'm aware this is one of those debates > like tabs vs spaces. Some will argue that the merge commit is a better > reflection of the reality of what happened. While I agree, it has an > obfuscation cost on everyone looking at the history. I think it > _sometimes_ makes sense for a merge commit, like maybe if the branch was a > long lived big feature. The setting I propose does not prevent someone > from deliberately choosing a merge commit when they consciously want one, > it's aimed at the common scenario during a push. > > If I can get broad agreement here, I can update > https://cwiki.apache.org/confluence/display/LUCENE/Commit+Process+Guidelines#CommitProcessGuidelines-LinearHistoryinGit > to recommend the setting above and remove the [PENDING DISCUSSION]. > > Thankfully, this appears to occur only rarely. It happened today on > branch_8x (I'm looking at you Eric Pugh :-) and a worse one there September > 29th by Noble. I say "worse" because the branch bifurcation was 2 weeks > long for that one. > > ~ David Smiley > Apache Lucene/Solr Search Developer > http://www.linkedin.com/in/davidwsmiley >