--- a/mercurial/cmdutil.py Tue Dec 09 12:39:23 2014 -0600
+++ b/mercurial/cmdutil.py Tue Dec 09 13:32:19 2014 -0600
@@ -1745,6 +1745,9 @@
else:
slowpath = False
+ fpats = ('_patsfollow', '_patsfollowfirst')
+ fnopats = (('_ancestors', '_fancestors'),
+ ('_descendants', '_fdescendants'))
if slowpath:
# See walkchangerevs() slow path.
#
@@ -1763,11 +1766,10 @@
matchargs.append('x:' + p)
matchargs = ','.join(('%r' % p) for p in matchargs)
opts['_matchfiles'] = matchargs
+ if follow:
+ opts[fnopats[0][followfirst]] = '.'
else:
if follow:
- fpats = ('_patsfollow', '_patsfollowfirst')
- fnopats = (('_ancestors', '_fancestors'),
- ('_descendants', '_fdescendants'))
if pats:
# follow() revset interprets its file argument as a
# manifest entry, so use match.files(), not pats.
@@ -1793,7 +1795,7 @@
filematcher = lambda rev: match
expr = []
- for op, val in opts.iteritems():
+ for op, val in sorted(opts.iteritems()):
if not val:
continue
if op not in opt2revset: