Mercurial > hg
changeset 16434:8b62a77d0895
graphlog: fix --follow FILE and relative paths
The situation is complicated because filelog() revset uses a match object in
relpath mode while follow() revset interprets the filename as a manifest entry.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sat, 14 Apr 2012 11:27:11 +0200 |
parents | e38b29937118 |
children | df347129305d |
files | hgext/graphlog.py tests/test-glog.t |
diffstat | 2 files changed, 17 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/graphlog.py Sat Apr 14 11:16:57 2012 +0200 +++ b/hgext/graphlog.py Sat Apr 14 11:27:11 2012 +0200 @@ -353,7 +353,9 @@ fnopats = (('_ancestors', '_fancestors'), ('_descendants', '_fdescendants')) if pats: - opts[fpats[followfirst]] = list(pats) + # follow() revset inteprets its file argument as a + # manifest entry, so use match.files(), not pats. + opts[fpats[followfirst]] = list(match.files()) else: opts[fnopats[followdescendants][followfirst]] = str(startrev) else:
--- a/tests/test-glog.t Sat Apr 14 11:16:57 2012 +0200 +++ b/tests/test-glog.t Sat Apr 14 11:27:11 2012 +0200 @@ -2026,6 +2026,20 @@ ('string', 'r:') ('string', 'd:relpath')) ('string', 'p:.')))) + $ testlog ../b + [] + (group + (group + (func + ('symbol', 'filelog') + ('string', '../b')))) + $ testlog -f ../b + [] + (group + (group + (func + ('symbol', 'follow') + ('string', 'b')))) $ cd .. Test --hidden