mercurial/revset.py
changeset 49511 117dcc4a0e67
parent 49510 e02dcc625171
child 49702 c55e70bed7eb
child 49946 76c128d4de4e
equal deleted inserted replaced
49510:e02dcc625171 49511:117dcc4a0e67
  2472     if len(keyflags) == 1 and keyflags[0][0] == b"rev":
  2472     if len(keyflags) == 1 and keyflags[0][0] == b"rev":
  2473         revs.sort(reverse=keyflags[0][1])
  2473         revs.sort(reverse=keyflags[0][1])
  2474         return revs
  2474         return revs
  2475     elif keyflags[0][0] == b"topo":
  2475     elif keyflags[0][0] == b"topo":
  2476         firstbranch = ()
  2476         firstbranch = ()
       
  2477         parentrevs = repo.changelog.parentrevs
       
  2478         parentsfunc = parentrevs
       
  2479         if wdirrev in revs:
       
  2480 
       
  2481             def parentsfunc(r):
       
  2482                 try:
       
  2483                     return parentrevs(r)
       
  2484                 except error.WdirUnsupported:
       
  2485                     return [p.rev() for p in repo[None].parents()]
       
  2486 
  2477         if b'topo.firstbranch' in opts:
  2487         if b'topo.firstbranch' in opts:
  2478             firstbranch = getset(repo, subset, opts[b'topo.firstbranch'])
  2488             firstbranch = getset(repo, subset, opts[b'topo.firstbranch'])
  2479         revs = baseset(
  2489         revs = baseset(
  2480             dagop.toposort(revs, repo.changelog.parentrevs, firstbranch),
  2490             dagop.toposort(revs, parentsfunc, firstbranch),
  2481             istopo=True,
  2491             istopo=True,
  2482         )
  2492         )
  2483         if keyflags[0][1]:
  2493         if keyflags[0][1]:
  2484             revs.reverse()
  2494             revs.reverse()
  2485         return revs
  2495         return revs