This is an archive of the discontinued Mercurial Phabricator instance.

phases: allow registration and boundary advancement with revision sets
ClosedPublic

Authored by joerg.sonnenberger on Oct 20 2020, 11:33 AM.

Details

Summary

The core internals either use revision sets already or can trivially use
them. Use the new interface in cg1unpacker.apply to avoid materializing
the list of all new nodes as it is normally just a revision range. This
avoids about 67 Bytes / changeset on AMD64 in peak RSS.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mharbison72 added inline comments.
mercurial/phases.py
513–515

Doesn't this sort of thing get flagged by pyflakes or whatever for being a mutable argument? I thought I remembered a series that took out stuff like this, defaulting to None and creating an empty list locally if needed. It looks like there are a few other cases below.

mercurial/phases.py
513–515

It doesn't flag it here. I'm not sure if it detects that revs is not mutated.

joerg.sonnenberger retitled this revision from phases: allow registration and boundary advancement with revsion sets to phases: allow registration and boundary advancement with revision sets.Oct 23 2020, 2:34 PM
joerg.sonnenberger updated this revision to Diff 23298.
This revision was not accepted when it landed; it landed in state Needs Review.
This revision was automatically updated to reflect the committed changes.