[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