[PATCH 7 of 8 clfilter-part1] clfilter: remove any explicit revision number from default cmdutil range

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Thu Sep 20 12:12:14 CDT 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1346675345 -7200
# Node ID 0f55ba7803997843a1e047f9b2fc112e53cabfb3
# Parent  2dadf80b38e19840fceb94eef2d7a99a5e2f8004
clfilter: remove any explicit revision number from default cmdutil range

Revision "0" and "-1" may be filtered, we can't use them in any default
revrange.

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -997,16 +997,17 @@ def walkchangerevs(repo, match, opts, pr
 
     follow = opts.get('follow') or opts.get('follow_first')
 
     if not len(repo):
         return []
-
-    if follow:
-        defrange = '%s:0' % repo['.'].rev()
+    if opts.get('rev'):
+        revs = scmutil.revrange(repo, opts.get('rev'))
+    elif follow:
+        revs = repo.revs('reverse(:.)')
     else:
-        defrange = '-1:0'
-    revs = scmutil.revrange(repo, opts.get('rev') or [defrange])
+        revs = list(repo)
+        revs.reverse()
     if not revs:
         return []
     wanted = set()
     slowpath = match.anypats() or (match.files() and opts.get('removed'))
     fncache = {}
@@ -1390,11 +1391,11 @@ def getgraphlogrevs(repo, pats, opts):
     follow = opts.get('follow') or opts.get('follow_first')
     if opts.get('rev'):
         revs = scmutil.revrange(repo, opts['rev'])
     else:
         if follow and len(repo) > 0:
-            revs = scmutil.revrange(repo, ['.:0'])
+            revs = repo.revs('reverse(:.)')
         else:
             revs = list(repo.changelog)
             revs.reverse()
     if not revs:
         return iter([]), None, None


More information about the Mercurial-devel mailing list