comparison mercurial/revset.py @ 37084:f0b6fbea00cf

stringutil: bulk-replace call sites to point to new module This might conflict with other patches floating around, sorry.
author Yuya Nishihara <yuya@tcha.org>
date Thu, 22 Mar 2018 21:56:20 +0900
parents 407934a97bc7
children d2c912836465
comparison
equal deleted inserted replaced
37083:f99d64e8a4e4 37084:f0b6fbea00cf
29 scmutil, 29 scmutil,
30 smartset, 30 smartset,
31 stack, 31 stack,
32 util, 32 util,
33 ) 33 )
34 from .utils import dateutil 34 from .utils import (
35 dateutil,
36 stringutil,
37 )
35 38
36 # helpers for processing parsed tree 39 # helpers for processing parsed tree
37 getsymbol = revsetlang.getsymbol 40 getsymbol = revsetlang.getsymbol
38 getstring = revsetlang.getstring 41 getstring = revsetlang.getstring
39 getinteger = revsetlang.getinteger 42 getinteger = revsetlang.getinteger
445 args = getargs(x, 0, 1, _('bookmark takes one or no arguments')) 448 args = getargs(x, 0, 1, _('bookmark takes one or no arguments'))
446 if args: 449 if args:
447 bm = getstring(args[0], 450 bm = getstring(args[0],
448 # i18n: "bookmark" is a keyword 451 # i18n: "bookmark" is a keyword
449 _('the argument to bookmark must be a string')) 452 _('the argument to bookmark must be a string'))
450 kind, pattern, matcher = util.stringmatcher(bm) 453 kind, pattern, matcher = stringutil.stringmatcher(bm)
451 bms = set() 454 bms = set()
452 if kind == 'literal': 455 if kind == 'literal':
453 bmrev = repo._bookmarks.get(pattern, None) 456 bmrev = repo._bookmarks.get(pattern, None)
454 if not bmrev: 457 if not bmrev:
455 raise error.RepoLookupError(_("bookmark '%s' does not exist") 458 raise error.RepoLookupError(_("bookmark '%s' does not exist")
490 b = getstring(x, '') 493 b = getstring(x, '')
491 except error.ParseError: 494 except error.ParseError:
492 # not a string, but another revspec, e.g. tip() 495 # not a string, but another revspec, e.g. tip()
493 pass 496 pass
494 else: 497 else:
495 kind, pattern, matcher = util.stringmatcher(b) 498 kind, pattern, matcher = stringutil.stringmatcher(b)
496 if kind == 'literal': 499 if kind == 'literal':
497 # note: falls through to the revspec case if no branch with 500 # note: falls through to the revspec case if no branch with
498 # this name exists and pattern kind is not specified explicitly 501 # this name exists and pattern kind is not specified explicitly
499 if pattern in repo.branchmap(): 502 if pattern in repo.branchmap():
500 return subset.filter(lambda r: matcher(getbranch(r)), 503 return subset.filter(lambda r: matcher(getbranch(r)),
817 820
818 if 'value' in args: 821 if 'value' in args:
819 # i18n: "extra" is a keyword 822 # i18n: "extra" is a keyword
820 value = getstring(args['value'], _('second argument to extra must be ' 823 value = getstring(args['value'], _('second argument to extra must be '
821 'a string')) 824 'a string'))
822 kind, value, matcher = util.stringmatcher(value) 825 kind, value, matcher = stringutil.stringmatcher(value)
823 826
824 def _matchvalue(r): 827 def _matchvalue(r):
825 extra = repo[r].extra() 828 extra = repo[r].extra()
826 return label in extra and (value is None or matcher(extra[label])) 829 return label in extra and (value is None or matcher(extra[label]))
827 830
1012 try: 1015 try:
1013 # i18n: "grep" is a keyword 1016 # i18n: "grep" is a keyword
1014 gr = re.compile(getstring(x, _("grep requires a string"))) 1017 gr = re.compile(getstring(x, _("grep requires a string")))
1015 except re.error as e: 1018 except re.error as e:
1016 raise error.ParseError( 1019 raise error.ParseError(
1017 _('invalid match pattern: %s') % util.forcebytestr(e)) 1020 _('invalid match pattern: %s') % stringutil.forcebytestr(e))
1018 1021
1019 def matches(x): 1022 def matches(x):
1020 c = repo[x] 1023 c = repo[x]
1021 for e in c.files() + [c.user(), c.description()]: 1024 for e in c.files() + [c.user(), c.description()]:
1022 if gr.search(e): 1025 if gr.search(e):
1284 args = getargs(x, 1, 1, _('named requires a namespace argument')) 1287 args = getargs(x, 1, 1, _('named requires a namespace argument'))
1285 1288
1286 ns = getstring(args[0], 1289 ns = getstring(args[0],
1287 # i18n: "named" is a keyword 1290 # i18n: "named" is a keyword
1288 _('the argument to named must be a string')) 1291 _('the argument to named must be a string'))
1289 kind, pattern, matcher = util.stringmatcher(ns) 1292 kind, pattern, matcher = stringutil.stringmatcher(ns)
1290 namespaces = set() 1293 namespaces = set()
1291 if kind == 'literal': 1294 if kind == 'literal':
1292 if pattern not in repo.names: 1295 if pattern not in repo.names:
1293 raise error.RepoLookupError(_("namespace '%s' does not exist") 1296 raise error.RepoLookupError(_("namespace '%s' does not exist")
1294 % ns) 1297 % ns)
1940 pat = getstring(args[0], _("subrepo requires a pattern")) 1943 pat = getstring(args[0], _("subrepo requires a pattern"))
1941 1944
1942 m = matchmod.exact(repo.root, repo.root, ['.hgsubstate']) 1945 m = matchmod.exact(repo.root, repo.root, ['.hgsubstate'])
1943 1946
1944 def submatches(names): 1947 def submatches(names):
1945 k, p, m = util.stringmatcher(pat) 1948 k, p, m = stringutil.stringmatcher(pat)
1946 for name in names: 1949 for name in names:
1947 if m(name): 1950 if m(name):
1948 yield name 1951 yield name
1949 1952
1950 def matches(x): 1953 def matches(x):
1993 f = lambda nodes: obsutil.allsuccessors(repo.obsstore, nodes) 1996 f = lambda nodes: obsutil.allsuccessors(repo.obsstore, nodes)
1994 d = _mapbynodefunc(repo, s, f) 1997 d = _mapbynodefunc(repo, s, f)
1995 return subset & d 1998 return subset & d
1996 1999
1997 def _substringmatcher(pattern, casesensitive=True): 2000 def _substringmatcher(pattern, casesensitive=True):
1998 kind, pattern, matcher = util.stringmatcher(pattern, 2001 kind, pattern, matcher = stringutil.stringmatcher(
1999 casesensitive=casesensitive) 2002 pattern, casesensitive=casesensitive)
2000 if kind == 'literal': 2003 if kind == 'literal':
2001 if not casesensitive: 2004 if not casesensitive:
2002 pattern = encoding.lower(pattern) 2005 pattern = encoding.lower(pattern)
2003 matcher = lambda s: pattern in encoding.lower(s) 2006 matcher = lambda s: pattern in encoding.lower(s)
2004 else: 2007 else:
2017 cl = repo.changelog 2020 cl = repo.changelog
2018 if args: 2021 if args:
2019 pattern = getstring(args[0], 2022 pattern = getstring(args[0],
2020 # i18n: "tag" is a keyword 2023 # i18n: "tag" is a keyword
2021 _('the argument to tag must be a string')) 2024 _('the argument to tag must be a string'))
2022 kind, pattern, matcher = util.stringmatcher(pattern) 2025 kind, pattern, matcher = stringutil.stringmatcher(pattern)
2023 if kind == 'literal': 2026 if kind == 'literal':
2024 # avoid resolving all tags 2027 # avoid resolving all tags
2025 tn = repo._tagscache.tags.get(pattern, None) 2028 tn = repo._tagscache.tags.get(pattern, None)
2026 if tn is None: 2029 if tn is None:
2027 raise error.RepoLookupError(_("tag '%s' does not exist") 2030 raise error.RepoLookupError(_("tag '%s' does not exist")