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,