mercurial/revset.py
changeset 32436 f064e2f72c49
parent 32435 bb5dc19484b8
child 32438 14482f8e6ce6
equal deleted inserted replaced
32435:bb5dc19484b8 32436:f064e2f72c49
  1500     cl = repo.changelog
  1500     cl = repo.changelog
  1501     for r in getset(repo, fullreposet(repo), x):
  1501     for r in getset(repo, fullreposet(repo), x):
  1502         if n == 0:
  1502         if n == 0:
  1503             ps.add(r)
  1503             ps.add(r)
  1504         elif n == 1:
  1504         elif n == 1:
  1505             ps.add(cl.parentrevs(r)[0])
  1505             try:
       
  1506                 ps.add(cl.parentrevs(r)[0])
       
  1507             except error.WdirUnsupported:
       
  1508                 ps.add(repo[r].parents()[0].rev())
  1506         elif n == 2:
  1509         elif n == 2:
  1507             parents = cl.parentrevs(r)
  1510             try:
  1508             if parents[1] != node.nullrev:
  1511                 parents = cl.parentrevs(r)
  1509                 ps.add(parents[1])
  1512                 if parents[1] != node.nullrev:
       
  1513                     ps.add(parents[1])
       
  1514             except error.WdirUnsupported:
       
  1515                 parents = repo[r].parents()
       
  1516                 if len(parents) == 2:
       
  1517                     ps.add(parents[1].rev())
  1510     return subset & ps
  1518     return subset & ps
  1511 
  1519 
  1512 @predicate('present(set)', safe=True)
  1520 @predicate('present(set)', safe=True)
  1513 def present(repo, subset, x):
  1521 def present(repo, subset, x):
  1514     """An empty set, if any revision in set isn't found; otherwise,
  1522     """An empty set, if any revision in set isn't found; otherwise,