diff mercurial/cmdutil.py @ 21877:dbbae63865a6

merge with stable
author Matt Mackall <mpm@selenic.com>
date Wed, 16 Jul 2014 17:35:04 -0500
parents abae1eb695c0 584bbfd1b50d
children e2530d4a47c1
line wrap: on
line diff
--- a/mercurial/cmdutil.py	Sat Jul 12 20:07:24 2014 +0900
+++ b/mercurial/cmdutil.py	Wed Jul 16 17:35:04 2014 -0500
@@ -1488,7 +1488,7 @@
 
     return iterate()
 
-def _makelogfilematcher(repo, pats, followfirst):
+def _makelogfilematcher(repo, files, followfirst):
     # When displaying a revision with --patch --follow FILE, we have
     # to know which file of the revision must be diffed. With
     # --follow, we want the names of the ancestors of FILE in the
@@ -1502,7 +1502,7 @@
     wctx = repo[None]
 
     def populate():
-        for fn in pats:
+        for fn in files:
             for i in ((pctx[fn],), pctx[fn].ancestors(followfirst=followfirst)):
                 for c in i:
                     fcache.setdefault(c.linkrev(), set()).add(c.path())
@@ -1627,7 +1627,9 @@
     filematcher = None
     if opts.get('patch') or opts.get('stat'):
         if follow:
-            filematcher = _makelogfilematcher(repo, pats, followfirst)
+            # _makelogfilematcher expects its files argument to be relative to
+            # the repo root, so use match.files(), not pats.
+            filematcher = _makelogfilematcher(repo, match.files(), followfirst)
         else:
             filematcher = lambda rev: match