mercurial/revset.py
branchstable
changeset 18473 692cbda1eb50
parent 18411 8b0f0dd56cec
child 18495 8260fa9f30b9
equal deleted inserted replaced
18472:37100f30590f 18473:692cbda1eb50
   221     if x in symbols:
   221     if x in symbols:
   222         raise error.ParseError(_("can't use %s here") % x)
   222         raise error.ParseError(_("can't use %s here") % x)
   223     return stringset(repo, subset, x)
   223     return stringset(repo, subset, x)
   224 
   224 
   225 def rangeset(repo, subset, x, y):
   225 def rangeset(repo, subset, x, y):
   226     m = getset(repo, subset, x)
   226     cl = repo.changelog
   227     if not m:
   227     m = getset(repo, cl, x)
   228         m = getset(repo, list(repo), x)
   228     n = getset(repo, cl, y)
   229 
       
   230     n = getset(repo, subset, y)
       
   231     if not n:
       
   232         n = getset(repo, list(repo), y)
       
   233 
   229 
   234     if not m or not n:
   230     if not m or not n:
   235         return []
   231         return []
   236     m, n = m[0], n[-1]
   232     m, n = m[0], n[-1]
   237 
   233 
   324         n = int(n[1])
   320         n = int(n[1])
   325     except (TypeError, ValueError):
   321     except (TypeError, ValueError):
   326         raise error.ParseError(_("~ expects a number"))
   322         raise error.ParseError(_("~ expects a number"))
   327     ps = set()
   323     ps = set()
   328     cl = repo.changelog
   324     cl = repo.changelog
   329     for r in getset(repo, subset, x):
   325     for r in getset(repo, cl, x):
   330         for i in range(n):
   326         for i in range(n):
   331             r = cl.parentrevs(r)[0]
   327             r = cl.parentrevs(r)[0]
   332         ps.add(r)
   328         ps.add(r)
   333     return [r for r in subset if r in ps]
   329     return [r for r in subset if r in ps]
   334 
   330 
  1137             raise ValueError
  1133             raise ValueError
  1138     except (TypeError, ValueError):
  1134     except (TypeError, ValueError):
  1139         raise error.ParseError(_("^ expects a number 0, 1, or 2"))
  1135         raise error.ParseError(_("^ expects a number 0, 1, or 2"))
  1140     ps = set()
  1136     ps = set()
  1141     cl = repo.changelog
  1137     cl = repo.changelog
  1142     for r in getset(repo, subset, x):
  1138     for r in getset(repo, cl, x):
  1143         if n == 0:
  1139         if n == 0:
  1144             ps.add(r)
  1140             ps.add(r)
  1145         elif n == 1:
  1141         elif n == 1:
  1146             ps.add(cl.parentrevs(r)[0])
  1142             ps.add(cl.parentrevs(r)[0])
  1147         elif n == 2:
  1143         elif n == 2: