mercurial/repoview.py
changeset 32589 306bba74c56e
parent 32588 d964959cbf66
child 32590 c777dac2b27c
equal deleted inserted replaced
32588:d964959cbf66 32589:306bba74c56e
    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: