[PATCH] D22463: [RFC] Moving to GitHub Proposal: NOT DECISION!

Jonathan Roelofs via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 19 08:20:24 PDT 2016



On 7/19/16 8:55 AM, Robinson, Paul wrote:
>>> I think we could emulate any pre-commit hook we like via GitHub
>>> WebHooks by having two repositories: llvm and llvm-staging (say).
>>>
>>> People push to llvm-staging, which notifies some LLVM server we own.
>>> That does basic sanity checks and pushes to llvm proper if passed.
>>
>> I think that would be terrible in practice, for instance how do you handle
>> situations like:
>>
>> 1) Dev A push commit A
>> 2) Dev B push commit B that changes some lines close to the one changed by
>> commit A
>> 3) sanity check fails on commit A, but llvm-staging contains A and B and
>> can’t get rid of A easily because B would not apply without A.
>>
>> At this point Dev B gets an email (or other mechanism, I don’t know what
>> you imagined) telling that his changed are rejected for no good reason.
>>
>> Also reverting to a state "before A” on llvm-staging would mean that that
>> the history would be rewritten and everyone that pulled/fetched in the
>> meantime would suffer .
>>
>> If we want to go towards pre-check using staging, I believe we should work
>> with pull-request (we’d still have the issue of conflicting PR, but I
>> don’t believe it’d be that bad in practice).
>> That’d be welcome, but that’d also be a whole other story to setup and
>> maintain!
>>
>>>> Mehdi
>
> Hear hear.  The schemes to handle this that I'm aware of do look more like
> pull requests.  You submit your change to the pre-qualification queue.
> If it rebases cleanly and passes pre-qual, your change becomes the new HEAD.
> If it doesn't rebase cleanly or fails pre-qual, your change gets bounced.

Reminds me a bit of a blockchain: longest validated chain of commits wins.


Jon

>
> A pull-request-like model also helps avoid the rebase-build-test-push(fail)
> loop that you can get into with a very active git-based project.  This is
> a mechanical task best suited to automation rather than wasting valuable
> developer time on it.  But I suspect GitHub does not have anything like
> this OOB so it would be an enhancement for a later time.
> --paulr
>
> P.S. At Sony we are building a system with a "staging" step but it's not
> for our own work... more of a "flood control" dam.  :-)
>

-- 
Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded


More information about the llvm-commits mailing list