Closed Bug 1375901 Opened 7 years ago Closed 7 years ago

overlay fails when filtering backouts with revset

Categories

(Developer Services :: Servo VCS Sync, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: smacleod, Assigned: smacleod)

References

Details

Attachments

(2 files)

In production we're using the revset 'not author("Gecko Backout <gecko-backout@mozilla.org>")' for overlay, so that gecko backouts aren't re-applied to the repo once they are synced from github. The problem is overlay checks these revsets to ensure it is a contiguous DAG head, which filtering the backouts like this will fail. See the following error:

> 2017-06-23T16:19:12.751758 [25544] executing: hg overlay https://hg.mozilla.org/projects/converted-servo-linear --into servo -d 78f2464c6c1f8052cbee6a740707851c7737f4b5 'not author("Gecko Backout <gecko-backout@mozilla.org>")'
> 2017-06-23T16:19:13.724723 [25544] hg> abort: source revisions must be part of contiguous DAG range

I have a hacky solution to get this fixed quickly, but we should figure something better out long term. Patch incoming.
Blocks: 1318107
Comment on attachment 8880868 [details]
overlay: add --noncontiguous argument to override contiguous check (Bug 1375901).

https://reviewboard.mozilla.org/r/152224/#review157278

::: hgext/overlay/tests/test-overlay-filtered-dag.t:37
(Diff revision 1)
> +  $ cat hg.pid >> $DAEMON_PIDS
> +  $ cd ..
> +
> +  $ hg init dest
> +
> +--into required

That's a weird (but harmless) comment.
Attachment #8880868 - Flags: review?(gps) → review+
Comment on attachment 8880868 [details]
overlay: add --noncontiguous argument to override contiguous check (Bug 1375901).

https://reviewboard.mozilla.org/r/152224/#review157278

> That's a weird (but harmless) comment.

Ah, copy paste test leftover, heh.
Comment on attachment 8880869 [details]
servo-vcs-sync: call hg overlay with --noncontiguous when filtering by author (Bug 1375901).

https://reviewboard.mozilla.org/r/152226/#review157280

::: hgext/overlay/__init__.py:217
(Diff revision 1)
>              break
>          except ValueError:
>              # Else the changeset in the destination isn't in the incoming set.
>              # This is OK iff the destination changeset is a conversion of
>              # the parent of the first incoming changeset.
> +            # TODO: This assumption doesn't hold with noncontiguous=True

I think you meant to put this on the other commit. But it's no big deal.

::: vcssync/mozvcssync/servo.py:322
(Diff revision 1)
>  
>      # Exclude pull requests generated by servo-backout-pr
>      if os.getenv('BACKOUT_AUTHOR'):
>          overlay_hg_repos.extend([
> -            '--source_revs', 'not author("%s")' % os.getenv('BACKOUT_AUTHOR')])
> +            '--source_revs',
> +            'not author("%s")' % os.getenv('BACKOUT_AUTHOR'),

This should ideally be on the same line since it is an argument value. But meh.
Attachment #8880869 - Flags: review?(gps) → review+
Pushed by smacleod@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/ada39a430209
overlay: add --noncontiguous argument to override contiguous check . r=gps
https://hg.mozilla.org/hgcustom/version-control-tools/rev/2385d5d544b0
servo-vcs-sync: call hg overlay with --noncontiguous when filtering by author . r=gps
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: