diff -r 18743c4d1989 -r 60101427d618 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Fri Feb 24 20:56:18 2012 +0100 +++ b/mercurial/cmdutil.py Fri Feb 24 20:57:59 2012 +0100 @@ -1024,8 +1024,15 @@ return reversed(revs) def iterfiles(): + pctx = repo['.'] for filename in match.files(): - yield filename, None + if follow: + if filename not in pctx: + raise util.Abort(_('cannot follow file not in parent ' + 'revision: "%s"') % filename) + yield filename, pctx[filename].filenode() + else: + yield filename, None for filename_node in copies: yield filename_node for file_, node in iterfiles():