mercurial/revset.py
changeset 29264 22625884b15c
parent 29238 e150c1d5f262
child 29265 3f9e68864ccc
equal deleted inserted replaced
29263:817ee3cfe862 29264:22625884b15c
  1866         revs.sort(reverse=True)
  1866         revs.sort(reverse=True)
  1867         return revs
  1867         return revs
  1868     # sort() is guaranteed to be stable
  1868     # sort() is guaranteed to be stable
  1869     ctxs = [repo[r] for r in revs]
  1869     ctxs = [repo[r] for r in revs]
  1870     for k in reversed(keys):
  1870     for k in reversed(keys):
       
  1871         fk = k
       
  1872         reverse = (k[0] == '-')
       
  1873         if reverse:
       
  1874             k = k[1:]
  1871         if k == 'rev':
  1875         if k == 'rev':
  1872             ctxs.sort(key=lambda c: c.rev())
  1876             ctxs.sort(key=lambda c: c.rev(), reverse=reverse)
  1873         elif k == '-rev':
       
  1874             ctxs.sort(key=lambda c: c.rev(), reverse=True)
       
  1875         elif k == 'branch':
  1877         elif k == 'branch':
  1876             ctxs.sort(key=lambda c: c.branch())
  1878             ctxs.sort(key=lambda c: c.branch(), reverse=reverse)
  1877         elif k == '-branch':
       
  1878             ctxs.sort(key=lambda c: c.branch(), reverse=True)
       
  1879         elif k == 'desc':
  1879         elif k == 'desc':
  1880             ctxs.sort(key=lambda c: c.description())
  1880             ctxs.sort(key=lambda c: c.description(), reverse=reverse)
  1881         elif k == '-desc':
       
  1882             ctxs.sort(key=lambda c: c.description(), reverse=True)
       
  1883         elif k in 'user author':
  1881         elif k in 'user author':
  1884             ctxs.sort(key=lambda c: c.user())
  1882             ctxs.sort(key=lambda c: c.user(), reverse=reverse)
  1885         elif k in '-user -author':
       
  1886             ctxs.sort(key=lambda c: c.user(), reverse=True)
       
  1887         elif k == 'date':
  1883         elif k == 'date':
  1888             ctxs.sort(key=lambda c: c.date()[0])
  1884             ctxs.sort(key=lambda c: c.date()[0], reverse=reverse)
  1889         elif k == '-date':
       
  1890             ctxs.sort(key=lambda c: c.date()[0], reverse=True)
       
  1891         else:
  1885         else:
  1892             raise error.ParseError(_("unknown sort key %r") % k)
  1886             raise error.ParseError(_("unknown sort key %r") % fk)
  1893     return baseset([c.rev() for c in ctxs])
  1887     return baseset([c.rev() for c in ctxs])
  1894 
  1888 
  1895 @predicate('subrepo([pattern])')
  1889 @predicate('subrepo([pattern])')
  1896 def subrepo(repo, subset, x):
  1890 def subrepo(repo, subset, x):
  1897     """Changesets that add, modify or remove the given subrepo.  If no subrepo
  1891     """Changesets that add, modify or remove the given subrepo.  If no subrepo