mercurial/revset.py
changeset 24204 d2de20e1451f
parent 24203 33c7a94d4dd0
child 24219 282c0d8c1880
equal deleted inserted replaced
24203:33c7a94d4dd0 24204:d2de20e1451f
   321 
   321 
   322 # operator methods
   322 # operator methods
   323 
   323 
   324 def stringset(repo, subset, x):
   324 def stringset(repo, subset, x):
   325     x = repo[x].rev()
   325     x = repo[x].rev()
   326     if x == -1 and len(subset) == len(repo):
       
   327         return baseset([-1])
       
   328     if x in subset:
   326     if x in subset:
   329         return baseset([x])
   327         return baseset([x])
   330     return baseset()
   328     return baseset()
   331 
   329 
   332 def symbolset(repo, subset, x):
   330 def symbolset(repo, subset, x):
  3310         return None
  3308         return None
  3311 
  3309 
  3312 class fullreposet(spanset):
  3310 class fullreposet(spanset):
  3313     """a set containing all revisions in the repo
  3311     """a set containing all revisions in the repo
  3314 
  3312 
  3315     This class exists to host special optimization.
  3313     This class exists to host special optimization and magic to handle virtual
       
  3314     revisions such as "null".
  3316     """
  3315     """
  3317 
  3316 
  3318     def __init__(self, repo):
  3317     def __init__(self, repo):
  3319         super(fullreposet, self).__init__(repo)
  3318         super(fullreposet, self).__init__(repo)
  3320 
  3319 
  3321     def __contains__(self, rev):
  3320     def __contains__(self, rev):
       
  3321         # assumes the given rev is valid
  3322         hidden = self._hiddenrevs
  3322         hidden = self._hiddenrevs
  3323         return ((self._start <= rev < self._end)
  3323         return not (hidden and rev in hidden)
  3324                 and not (hidden and rev in hidden))
       
  3325 
  3324 
  3326     def __and__(self, other):
  3325     def __and__(self, other):
  3327         """As self contains the whole repo, all of the other set should also be
  3326         """As self contains the whole repo, all of the other set should also be
  3328         in self. Therefore `self & other = other`.
  3327         in self. Therefore `self & other = other`.
  3329 
  3328