]> thyrsus.com Git - src.git/commitdiff
Fix some confusion in sequence computation. Regression tests pass.
authorEric S. Raymond <esr@thyrsus.com>
Thu, 20 Nov 2014 10:52:27 +0000 (05:52 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Thu, 20 Nov 2014 10:52:27 +0000 (05:52 -0500)
src

diff --git a/src b/src
index ede1ea939d6e1e50c12693f1551d20455636ca4c..68a4b9881d3d378f19cd09cb9af5b598ba54bbfc 100755 (executable)
--- a/src
+++ b/src
@@ -895,12 +895,12 @@ class CommandContext:
         "Set the range to all revisions."
         self.start = 1
         self.end = len(metadata)
-        self.seq = range(self.start, self.end+1)
+        self.seq = [metadata.by_revno(i) for i in range(self.start, self.end+1)]
     def select_tip(self, metadata):
         "Set the range to the tip revision."
         self.start = len(metadata)
         self.end = None
-        self.seq = [self.start]
+        self.seq = [metadata.by_revno(self.start)]
     def __contains__(self, i):
         "Does the spec contain the given revno?"
         if self.seq is None:
@@ -1243,9 +1243,8 @@ def cat_method(*args):
         if ctx.is_empty():
             ctx.select_tip(metadata)
         with backend.lifter(arg):
-            for item in metadata.revlist:
-                if item.revno in ctx:
-                    backend.cat(arg, item.native)
+            for item in ctx.seq:
+                backend.cat(arg, item.native)
 
 def diff_method(*args):
     "Dump diffs between revisions to standard output."