contrib/perf-utils/subsetmaker.py
changeset 46772 63a3941d9847
parent 46767 36b4640ccb6a
child 49013 186223795e4a
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