Mercurial > hg
comparison contrib/perf-utils/subsetmaker.py @ 46772:63a3941d9847
perf-util: add an helper revset to use the same spec as the case search script
This make result of the searcher script easier to use.
Differential Revision: https://phab.mercurial-scm.org/D10228
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 16 Mar 2021 12:52:23 +0100 |
parents | 36b4640ccb6a |
children | 186223795e4a |
comparison
equal
deleted
inserted
replaced
46771:6b26e6432554 | 46772:63a3941d9847 |
---|---|
14 revsetlang, | 14 revsetlang, |
15 smartset, | 15 smartset, |
16 ) | 16 ) |
17 | 17 |
18 revsetpredicate = registrar.revsetpredicate() | 18 revsetpredicate = registrar.revsetpredicate() |
19 | |
20 | |
21 @revsetpredicate(b'subsetspec("<spec>")') | |
22 def subsetmarkerspec(repo, subset, x): | |
23 """use a shorthand spec as used by search-discovery-case | |
24 | |
25 Supported format are: | |
26 | |
27 - "scratch-count-seed": not scratch(all(), count, "seed") | |
28 - "randomantichain-seed": ::randomantichain(all(), "seed") | |
29 - "rev-REV": "::REV" | |
30 """ | |
31 args = revsetlang.getargs( | |
32 x, 0, 1, _(b'subsetspec("spec") required an argument') | |
33 ) | |
34 | |
35 spec = revsetlang.getstring(args[0], _(b"spec should be a string")) | |
36 case = spec.split(b'-') | |
37 t = case[0] | |
38 if t == b'scratch': | |
39 spec_revset = b'not scratch(all(), %s, "%s")' % (case[1], case[2]) | |
40 elif t == b'randomantichain': | |
41 spec_revset = b'::randomantichain(all(), "%s")' % case[1] | |
42 elif t == b'rev': | |
43 spec_revset = b'::%d' % case[1] | |
44 else: | |
45 assert False, spec | |
46 | |
47 selected = repo.revs(spec_revset) | |
48 | |
49 return selected & subset | |
19 | 50 |
20 | 51 |
21 @revsetpredicate(b'scratch(REVS, <count>, [seed])') | 52 @revsetpredicate(b'scratch(REVS, <count>, [seed])') |
22 def scratch(repo, subset, x): | 53 def scratch(repo, subset, x): |
23 """randomly remove <count> revision from the repository top | 54 """randomly remove <count> revision from the repository top |