> Le 3 nov. 2017 à 02:10, Gregory Szorc <g...@mozilla.com> a écrit :
> 
> On Thu, Nov 2, 2017 at 5:00 PM, Manish Goregaokar <manishsm...@gmail.com>
> wrote:
> 
>> <snip/>
> 
> The Firefox repo has the same dilemma. Ideally history is good down to the
> commit level. In reality, we only test on "push heads" (commits that were
> heads at time of their push) so this is the only thing we try to claim.
> Adding more reality, we have tons of bad push heads and even this guarantee
> is weak. (There's a plan to employ the forced use of autoland combined with
> history rewriting to tackle this. Bug 1266863 tracks.)
> 
> If you squash commits, you potentially lose a lot of valuable data. Depends
> if the squashed-over commits are valuable or not. I agree in not wanting to
> lose this important history just to maintain commit-level bisectability.

In my experience, this is very rarely an issue. There is no reason to keep a 
notably broken commit for "history".

> The lack of tools being able to bisect over arbitrary commits is a tooling
> problem IMO. `hg bisect --skip <revset>` solves this nicely in Mercurial
> land. You can get something similar with Git but Git's commit selection
> facilities aren't as powerful, so it is a bit harder to use. Improving
> tooling is a solvable problem and I don't think should be used as
> justification to throw away useful commit-level data! FWIW, Mercurial 4.4
> supports revsets that read revisions from files or command output. So you
> can maintain a list of "known good" or "known bad" bisectable commits in
> the repo and feed that into `hg bisect --skip`.

How is that different from `git bisect --skip` and `git bisect replay`? But 
anyway, Servo uses Git. ;)

> At repos as large as Servo and Firefox, commit-level bisection would
> require a lot of testing resources. Maybe you can do lightweight tests on
> every commit. But all the tests is almost certainly prohibitively expensive.
> 
> Instead of imposing a hard or fast rule, mine would be phrased as a goal.
> "Attempt to write commits that are all "good." But this property can be a)
> intentionally violated if squashing commits would result in loss of
> information important to archeology or b) unintentionally violated because
> not all commits are actually tested." Or something along those lines.

I think that would indeed be the best, as a guideline.

I just don't want to hear "shrug, I don't have time for this" (which is 
something I've already encountered in the past).

_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to