109 raise error.ParseError(_("missing argument")) |
109 raise error.ParseError(_("missing argument")) |
110 return methods[x[0]](repo, subset, *x[1:]) |
110 return methods[x[0]](repo, subset, *x[1:]) |
111 |
111 |
112 # operator methods |
112 # operator methods |
113 |
113 |
114 def negate(repo, subset, x): |
|
115 return getset(repo, subset, |
|
116 ('string', '-' + getstring(x, _("can't negate that")))) |
|
117 |
|
118 def stringset(repo, subset, x): |
114 def stringset(repo, subset, x): |
119 x = repo[x].rev() |
115 x = repo[x].rev() |
120 if x == -1 and len(subset) == len(repo): |
116 if x == -1 and len(subset) == len(repo): |
121 return [-1] |
117 return [-1] |
122 if x in subset: |
118 if x in subset: |
513 return optimize(('func', ('symbol', 'descendants'), x[1]), small) |
508 return optimize(('func', ('symbol', 'descendants'), x[1]), small) |
514 elif op == 'rangepre': |
509 elif op == 'rangepre': |
515 return optimize(('range', ('string', '0'), x[1]), small) |
510 return optimize(('range', ('string', '0'), x[1]), small) |
516 elif op == 'rangepost': |
511 elif op == 'rangepost': |
517 return optimize(('range', x[1], ('string', 'tip')), small) |
512 return optimize(('range', x[1], ('string', 'tip')), small) |
|
513 elif op == 'negate': |
|
514 return optimize(('string', |
|
515 '-' + getstring(x[1], _("can't negate that"))), small) |
518 elif op in 'string symbol negate': |
516 elif op in 'string symbol negate': |
519 return smallbonus, x # single revisions are small |
517 return smallbonus, x # single revisions are small |
520 elif op == 'and' or op == 'dagrange': |
518 elif op == 'and' or op == 'dagrange': |
521 wa, ta = optimize(x[1], True) |
519 wa, ta = optimize(x[1], True) |
522 wb, tb = optimize(x[2], True) |
520 wb, tb = optimize(x[2], True) |