Mercurial > public > mercurial-scm > hg
diff mercurial/phases.py @ 50389:385a4f8056e5
bundle: include required phases when saving a bundle (issue6794)
We now properly computes and includes phases above secret in bundle,
previously, they would be skipped, and then the code computing them would
crash.
Note that from this changeset, we also include the heads associated with the
changegroup's "target" phase. This turned out to be necessary to ensure the
movement of changeset included in the bundle, but already known locally.
This explain why lines for "secret" heads appears in multiple tests.
author | Jason R. Coombs <jaraco@jaraco.com>, Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 09 Mar 2023 01:26:04 +0100 |
parents | 92f71d40fc1d |
children | 386737600689 |
line wrap: on
line diff
--- a/mercurial/phases.py Wed Mar 08 17:33:33 2023 +0100 +++ b/mercurial/phases.py Thu Mar 09 01:26:04 2023 +0100 @@ -827,10 +827,8 @@ cl = repo.changelog headsbyphase = {i: [] for i in allphases} - # No need to keep track of secret phase; any heads in the subset that - # are not mentioned are implicitly secret. - for phase in allphases[:secret]: - revset = b"heads(%%ln & %s())" % phasenames[phase] + for phase in allphases: + revset = b"heads(%%ln & _phase(%d))" % phase headsbyphase[phase] = [cl.node(r) for r in repo.revs(revset, subset)] return headsbyphase