##// END OF EJS Templates
revset: support "follow(renamed.py, e22f4f3f06c3)" (issue5334)...
Gábor Stefanik -
r29814:cbf9984a default
parent child Browse files
Show More
@@ -999,12 +999,20 b' def first(repo, subset, x):'
999 999 return limit(repo, subset, x)
1000 1000
1001 1001 def _follow(repo, subset, x, name, followfirst=False):
1002 l = getargs(x, 0, 1, _("%s takes no arguments or a pattern") % name)
1002 l = getargs(x, 0, 2, _("%s takes no arguments or a pattern "
1003 "and an optional revset") % name)
1003 1004 c = repo['.']
1004 1005 if l:
1005 1006 x = getstring(l[0], _("%s expected a pattern") % name)
1007 rev = None
1008 if len(l) >= 2:
1009 rev = getset(repo, fullreposet(repo), l[1]).last()
1010 if rev is None:
1011 raise error.RepoLookupError(
1012 _("%s: starting revision set cannot be empty") % name)
1013 c = repo[rev]
1006 1014 matcher = matchmod.match(repo.root, repo.getcwd(), [x],
1007 ctx=repo[None], default='path')
1015 ctx=repo[rev], default='path')
1008 1016
1009 1017 files = c.manifest().walk(matcher)
1010 1018
@@ -1019,20 +1027,20 b' def _follow(repo, subset, x, name, follo'
1019 1027
1020 1028 return subset & s
1021 1029
1022 @predicate('follow([pattern])', safe=True)
1030 @predicate('follow([pattern[, startrev]])', safe=True)
1023 1031 def follow(repo, subset, x):
1024 1032 """
1025 1033 An alias for ``::.`` (ancestors of the working directory's first parent).
1026 1034 If pattern is specified, the histories of files matching given
1027 pattern is followed, including copies.
1035 pattern in the revision given by startrev are followed, including copies.
1028 1036 """
1029 1037 return _follow(repo, subset, x, 'follow')
1030 1038
1031 1039 @predicate('_followfirst', safe=True)
1032 1040 def _followfirst(repo, subset, x):
1033 # ``followfirst([pattern])``
1034 # Like ``follow([pattern])`` but follows only the first parent of
1035 # every revisions or files revisions.
1041 # ``followfirst([pattern[, startrev]])``
1042 # Like ``follow([pattern[, startrev]])`` but follows only the first parent
1043 # of every revisions or files revisions.
1036 1044 return _follow(repo, subset, x, '_followfirst', followfirst=True)
1037 1045
1038 1046 @predicate('all()', safe=True)
@@ -717,6 +717,19 b' log -r "follow(\'set:grep(b2)\')"'
717 717 date: Thu Jan 01 00:00:01 1970 +0000
718 718 summary: b2
719 719
720 log -r "follow('set:grep(b2)', 4)"
721
722 $ hg up -qC 0
723 $ hg log -r "follow('set:grep(b2)', 4)"
724 changeset: 4:ddb82e70d1a1
725 tag: tip
726 parent: 0:67e992f2c4f3
727 user: test
728 date: Thu Jan 01 00:00:01 1970 +0000
729 summary: b2
730
731 $ hg up -qC 4
732
720 733 log -f -r null
721 734
722 735 $ hg log -f -r null
General Comments 0
You need to be logged in to leave comments. Login now