Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revset.py @ 26713:a271925699d6
revset: reintroduce and experimental revset for update destination
The revset is not ready for prime time yet. However it is useful to have some
version of it exposed to help candidate users to play with it and provide
feedback on what we should aim at.
We add a small test to make sure the code runs.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 15 Oct 2015 01:35:44 +0100 |
parents | 7afaf2566e25 |
children | 9903261dcc81 |
comparison
equal
deleted
inserted
replaced
26712:04176eaf911b | 26713:a271925699d6 |
---|---|
10 import heapq | 10 import heapq |
11 import re | 11 import re |
12 | 12 |
13 from .i18n import _ | 13 from .i18n import _ |
14 from . import ( | 14 from . import ( |
15 destutil, | |
15 encoding, | 16 encoding, |
16 error, | 17 error, |
17 hbisect, | 18 hbisect, |
18 match as matchmod, | 19 match as matchmod, |
19 node, | 20 node, |
461 syms = [s for (s, fn) in symbols.items() if keep(fn)] | 462 syms = [s for (s, fn) in symbols.items() if keep(fn)] |
462 raise error.UnknownIdentifier(a[1], syms) | 463 raise error.UnknownIdentifier(a[1], syms) |
463 | 464 |
464 # functions | 465 # functions |
465 | 466 |
467 def _destupdate(repo, subset, x): | |
468 # experimental revset for update destination | |
469 args = getargsdict(x, 'limit', 'clean check') | |
470 return subset & baseset([destutil.destupdate(repo, **args)[0]]) | |
471 | |
466 def _mergedefaultdest(repo, subset, x): | 472 def _mergedefaultdest(repo, subset, x): |
467 # ``_mergedefaultdest()`` | 473 # ``_mergedefaultdest()`` |
468 | 474 |
469 # default destination for merge. | 475 # default destination for merge. |
470 # # XXX: Currently private because I expect the signature to change. | 476 # # XXX: Currently private because I expect the signature to change. |
2140 ls = [cl.rev(node.bin(r)) for r in s.split('\0')] | 2146 ls = [cl.rev(node.bin(r)) for r in s.split('\0')] |
2141 s = subset | 2147 s = subset |
2142 return baseset([r for r in ls if r in s]) | 2148 return baseset([r for r in ls if r in s]) |
2143 | 2149 |
2144 symbols = { | 2150 symbols = { |
2151 "_destupdate": _destupdate, | |
2145 "_mergedefaultdest": _mergedefaultdest, | 2152 "_mergedefaultdest": _mergedefaultdest, |
2146 "adds": adds, | 2153 "adds": adds, |
2147 "all": getall, | 2154 "all": getall, |
2148 "ancestor": ancestor, | 2155 "ancestor": ancestor, |
2149 "ancestors": ancestors, | 2156 "ancestors": ancestors, |