<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 23, 2020 at 5:47 PM David Greene <<a href="mailto:greened@obbligato.org">greened@obbligato.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Christian Kühnel <<a href="mailto:kuhnel@google.com" target="_blank">kuhnel@google.com</a>> writes:<br>
<br>
>> It's not quite that simple though.  In general most PRs will need to be<br>
>> rebased just before merging to maintain linear history.<br>
><br>
><br>
> That depends on how frequent merge conflicts are. In my other projects that<br>
> wasn't really an issue. I rarely had to rebase something manually.<br>
<br>
It has little to do with merge conflicts.  Because LLVM requires<br>
fast-forward merges, everything has to be rebased after something else<br>
gets merged.<br></blockquote><div><br></div><div>This is done by github PR automagically as long as there are no merge conflicts.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
>> What happens then?  Would things need to pass another build before<br>
>> the "final merge?"<br>
>><br>
>> If so, then something needs to keep a list of pending PRs waiting for<br>
>> "final merge."  This quickly gets very hairy as pending PRs have to<br>
>> constantly be rebased and rebuilt as other PRs land.<br>
><br>
> Some projects have a flag they set and let some bot do the manual work:<br>
> Rebase, re-test and then automatically merge.<br>
> I do not expect this to be perfect, it should rather be much better than<br>
> today in slipping new bugs into master.<br>
<br>
I agree the process can be improved.  But at some point builders are<br>
going to be backed up as each PR gets rebased and then rebuilt just<br>
before merging.  Probably we will have to punt an assume that if the<br>
rebase is clean, it can just be merged in without another build.  We<br>
will miss some small cases where non-conflicting code interacts in bad<br>
ways but as you said, no system is perfect.<br></blockquote><div><br></div><div>Yes, I agree.</div></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Best,<div>Christian</div></div></div></div>