[PATCH 07 of 17 RFC] clfilter: remove any explicit revision number from default cmdutil range

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Mon Sep 3 07:58:31 CDT 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1346675345 -7200
# Node ID 4a4dafde8898d6cc4fa9c77cfe10125afc63dd87
# Parent  89a7b0e442adc3393ee98d27bdb8ef9665eef0cf
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
@@ -989,16 +989,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 = {}
@@ -1382,11 +1383,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