Show More
@@ -1765,6 +1765,20 b' def rev(repo, subset, x):' | |||||
1765 | return baseset() |
|
1765 | return baseset() | |
1766 | return subset & baseset([l]) |
|
1766 | return subset & baseset([l]) | |
1767 |
|
1767 | |||
|
1768 | @predicate('_rev(number)', safe=True) | |||
|
1769 | def _rev(repo, subset, x): | |||
|
1770 | # internal version of "rev(x)" that raise error if "x" is invalid | |||
|
1771 | # i18n: "rev" is a keyword | |||
|
1772 | l = getargs(x, 1, 1, _("rev requires one argument")) | |||
|
1773 | try: | |||
|
1774 | # i18n: "rev" is a keyword | |||
|
1775 | l = int(getstring(l[0], _("rev requires a number"))) | |||
|
1776 | except (TypeError, ValueError): | |||
|
1777 | # i18n: "rev" is a keyword | |||
|
1778 | raise error.ParseError(_("rev expects a number")) | |||
|
1779 | repo.changelog.node(l) # check that the rev exists | |||
|
1780 | return subset & baseset([l]) | |||
|
1781 | ||||
1768 | @predicate('revset(set)', safe=True, takeorder=True) |
|
1782 | @predicate('revset(set)', safe=True, takeorder=True) | |
1769 | def revsetpredicate(repo, subset, x, order): |
|
1783 | def revsetpredicate(repo, subset, x, order): | |
1770 | """Strictly interpret the content as a revset. |
|
1784 | """Strictly interpret the content as a revset. |
@@ -585,7 +585,7 b' def _quote(s):' | |||||
585 |
|
585 | |||
586 | def _formatargtype(c, arg): |
|
586 | def _formatargtype(c, arg): | |
587 | if c == 'd': |
|
587 | if c == 'd': | |
588 | return 'rev(%d)' % int(arg) |
|
588 | return '_rev(%d)' % int(arg) | |
589 | elif c == 's': |
|
589 | elif c == 's': | |
590 | return _quote(arg) |
|
590 | return _quote(arg) | |
591 | elif c == 'r': |
|
591 | elif c == 'r': | |
@@ -663,9 +663,9 b' def formatspec(expr, *args):' | |||||
663 | >>> formatspec(b'%r:: and %lr', b'10 or 11', (b"this()", b"that()")) |
|
663 | >>> formatspec(b'%r:: and %lr', b'10 or 11', (b"this()", b"that()")) | |
664 | '(10 or 11):: and ((this()) or (that()))' |
|
664 | '(10 or 11):: and ((this()) or (that()))' | |
665 | >>> formatspec(b'%d:: and not %d::', 10, 20) |
|
665 | >>> formatspec(b'%d:: and not %d::', 10, 20) | |
666 | 'rev(10):: and not rev(20)::' |
|
666 | '_rev(10):: and not _rev(20)::' | |
667 | >>> formatspec(b'%ld or %ld', [], [1]) |
|
667 | >>> formatspec(b'%ld or %ld', [], [1]) | |
668 | "_list('') or rev(1)" |
|
668 | "_list('') or _rev(1)" | |
669 | >>> formatspec(b'keyword(%s)', b'foo\\xe9') |
|
669 | >>> formatspec(b'keyword(%s)', b'foo\\xe9') | |
670 | "keyword('foo\\\\xe9')" |
|
670 | "keyword('foo\\\\xe9')" | |
671 | >>> b = lambda: b'default' |
|
671 | >>> b = lambda: b'default' |
General Comments 0
You need to be logged in to leave comments.
Login now