> > 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. 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. :-) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits