equal
deleted
inserted
replaced
42 if tags: |
42 if tags: |
43 rev, nodemap = cl.rev, cl.nodemap |
43 rev, nodemap = cl.rev, cl.nodemap |
44 pinned.update(rev(t[0]) for t in tags.values() if t[0] in nodemap) |
44 pinned.update(rev(t[0]) for t in tags.values() if t[0] in nodemap) |
45 return pinned |
45 return pinned |
46 |
46 |
47 def _consistencyblocker(pfunc, hideable, domain): |
47 def _consistencyblocker(pfunc, hideable, revs): |
48 """return non-hideable changeset blocking hideable one |
48 """return non-hideable changeset blocking hideable one |
49 |
49 |
50 For consistency, we cannot actually hide a changeset if one of it children |
50 For consistency, we cannot actually hide a changeset if one of it children |
51 are visible, this function find such children. |
51 are visible, this function find such children. |
52 """ |
52 """ |
53 others = domain - hideable |
|
54 blockers = set() |
53 blockers = set() |
55 for r in others: |
54 for r in revs: |
56 for p in pfunc(r): |
55 for p in pfunc(r): |
57 if p != nullrev and p in hideable: |
56 if p != nullrev and p in hideable: |
58 blockers.add(r) |
57 blockers.add(r) |
59 break |
58 break |
60 return blockers |
59 return blockers |
88 if hidden: |
87 if hidden: |
89 pfunc = repo.changelog.parentrevs |
88 pfunc = repo.changelog.parentrevs |
90 mutablephases = (phases.draft, phases.secret) |
89 mutablephases = (phases.draft, phases.secret) |
91 mutable = repo._phasecache.getrevset(repo, mutablephases) |
90 mutable = repo._phasecache.getrevset(repo, mutablephases) |
92 |
91 |
93 blockers = _consistencyblocker(pfunc, hidden, mutable) |
92 visible = mutable - hidden |
|
93 blockers = _consistencyblocker(pfunc, hidden, visible) |
94 |
94 |
95 # check if we have wd parents, bookmarks or tags pointing to hidden |
95 # check if we have wd parents, bookmarks or tags pointing to hidden |
96 # changesets and remove those. |
96 # changesets and remove those. |
97 blockers |= (hidden & pinnedrevs(repo)) |
97 blockers |= (hidden & pinnedrevs(repo)) |
98 if blockers: |
98 if blockers: |