Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revset.py @ 25902:5214cbdc37e5
revset: port parsing rule of old-style ranges from scmutil.revrange()
The old-style parser will be removed soon.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 18 Jul 2015 23:30:17 +0900 |
parents | be29d26e2949 |
children | 996102be8b91 |
line wrap: on
line diff
--- a/mercurial/revset.py Sat Jul 18 23:02:18 2015 +0900 +++ b/mercurial/revset.py Sat Jul 18 23:30:17 2015 +0900 @@ -178,6 +178,21 @@ if symletters is None: symletters = _symletters + if program and lookup: + # attempt to parse old-style ranges first to deal with + # things like old-tag which contain query metacharacters + parts = program.split(':', 1) + if all(lookup(sym) for sym in parts if sym): + if parts[0]: + yield ('symbol', parts[0], 0) + if len(parts) > 1: + s = len(parts[0]) + yield (':', None, s) + if parts[1]: + yield ('symbol', parts[1], s + 1) + yield ('end', None, len(program)) + return + pos, l = 0, len(program) while pos < l: c = program[pos]