Web lists-archives.com

Re: [PATCH v3] doc-diff: don't `cd_to_toplevel`




On Thu, Feb 07, 2019 at 04:41:57PM +0100, Johannes Schindelin wrote:

> > I think this can be limited to the tests that failed, which makes things
> > much faster. I.e., we run the tests at the tip of topic X and see that
> > t1234 fails. We then go back to the fork point and we just need to run
> > t1234 again. If it succeeds, then we blame X for the failure. If it
> > fails, then we consider it a false positive.
> 
> If you mean merge bases by fork points, I wrote an Azure Pipeline to do
> that (so that I could use the cloud as kind of a fast computer), but that
> was still too slow.
> 
> Even when there are even only as much as 12 merge bases to test (which is
> the current number of merge bases between `next` and `pu`), a build takes
> roughly 6 minutes on Windows, and many tests take 1 minute or more to run
> (offenders like t7003 and t7610 take over 400 seconds, i.e. roughly 6
> minutes), we are talking about roughly 1.5h *just* to test the merge
> bases.

I was assuming you're testing individual topics from gitster/git here
(which admittedly is more CPU in total than just the integration
branches, but it at least parallelizes well).

So with that assumption, I was thinking that you'd just look for the
merge-base of HEAD and master, which should give you a single point for
most topics. For inter-twined topics there may be more merge bases, but
I actually think for our purposes here, just testing the most recent one
is probably OK. I.e., we're just trying to have a vague sense of whether
the test failure is due to new commits or old.

I think Junio's suggestion to just pick some common release points would
work OK in practice, too. It's possible that some other topic made it to
master with a breakage, but in most cases, I think these sorts of
failures are often more coarsely-grained (especially if Junio pays
attention to the CI results before merging).

-Peff