]> thyrsus.com Git - src.git/commitdiff
Move a method.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 10 Nov 2014 14:22:01 +0000 (09:22 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 10 Nov 2014 14:22:01 +0000 (09:22 -0500)
src

diff --git a/src b/src
index 2f3851f3c30ef11d6d48abc8a0da9183b647fad4..834eb613bddf25bf48f25cd689f61a8de873d7ff 100755 (executable)
--- a/src
+++ b/src
@@ -173,23 +173,6 @@ class History:
             if item.revno == revno:
                 return item.revision
         croak("{0} has no revno {1}".format(self.name, revno))
-    def resolve(self, ctx):
-        "Resolve a revision spec that may contain tags into revnos."
-        if ctx.is_empty():
-            return ctx
-        if type(ctx.start) == type(""):
-            if ctx.start in self.symbols:
-                ctx.start = self.symbols[ctx.start]
-            else:
-                croak("can't resolve symbol {0} in {1}".format(ctx.start,self.name))
-        if type(ctx.end) == type(""):
-            if ctx.end in self.symbols:
-                ctx.end = self.symbols[ctx.end]
-            else:
-                croak("can't resolve symbol {0} in {1}".format(ctx.end, self.name))
-        if ctx.end > len(self):
-            croak("{0} has no {1} revision".format(self.name, ctx.end))
-        return ctx
     def isbranch(self, symbol):
         "Is this a branch symbol?"
         return ".0." in symbol
@@ -352,6 +335,22 @@ class CommandContext:
     def __contains__(self, i):
         "Does the spec contain the given revno?"
         return i >= self.start and (self.end is None or i <= self.end)
+    def resolve(self, metadata):
+        "Resolve a revision spec that may contain tags into revnos."
+        if self.is_empty():
+            return self
+        if type(self.start) == type(""):
+            if self.start in metadata.symbols:
+                self.start = metadata.symbols[self.start]
+            else:
+                croak("can't resolve symbol {0} in {1}".format(self.start,metadata.name))
+        if type(self.end) == type(""):
+            if self.end in metadata.symbols:
+                self.end = metadata.symbols[self.end]
+            else:
+                croak("can't resolve symbol {0} in {1}".format(self.end, metadata.name))
+        if self.end > len(metadata):
+            croak("{0} has no {1} revision".format(metadata.name, self.end))
 
 def add_method(*args):
     "Register a file into src control."
@@ -453,7 +452,7 @@ def amend_method(*args):
            croak("%s is not registered." % arg)
        else:
            metadata = History(arg)
-           metadata.resolve(ctx)
+           ctx.resolve(metadata)
            if ctx.is_empty():
                ctx.start = metadata.tip().revno
            if not comment:
@@ -471,7 +470,7 @@ def list_method(*args):
     for arg in ctx.args:
         sys.stdout.write("= %s %s\n" % (arg, ((width - len(arg) - 5) * "=")))
         metadata = History(arg)
-        metadata.resolve(ctx)
+        ctx.resolve(metadata)
         for item in metadata:
             if ctx.is_empty() or item.revno in ctx:
                 # Must allow enough room for revno and date
@@ -490,7 +489,7 @@ def log_method(*args):
     for arg in ctx.args:
         sys.stdout.write("= %s %s\n" % (arg, ((width - len(arg) - 5) * "=")))
         metadata = History(arg)
-        metadata.resolve(ctx)
+        ctx.resolve(metadata)
         for item in metadata:
             if ctx.is_empty() or item.revno in ctx:
                 sys.stdout.write("%-4d | %s\n%s" % (item.revno, item.date, item.log))
@@ -503,7 +502,7 @@ def checkout_method(*args):
         croak("checkout needs an empty or singleton revision spec")
     for arg in ctx.args:
         metadata = History(arg)
-        metadata.resolve(ctx)
+        ctx.resolve(metadata)
         if ctx.is_empty():
             ctx.start = metadata.tip().revno
             revision = ""
@@ -569,7 +568,7 @@ def cat_method(*args):
     ctx = CommandContext("cat", args)
     for arg in ctx.args:
         metadata = History(arg)
-        metadata.resolve(ctx)
+        ctx.resolve(metadata)
         if ctx.is_empty():
             ctx.select_all(metadata)
         with backend.lifter(arg):
@@ -587,7 +586,7 @@ def diff_method(*args):
         diffspec1 = diffspec2 = ""
         if not ctx.is_empty():
             metadata = History(arg)
-            metadata.resolve(ctx)
+            ctx.resolve(metadata)
             diffspec1 += metadata.revno_to_rcs(ctx.start)
             if ctx.is_range():
                 diffspec2 += metadata.revno_to_rcs(ctx.end)
@@ -662,7 +661,7 @@ def tag_helper(args, legend, delete_method, set_method):
         metadata = History(arg)
         # Semantics differs between tags and branches here
         if legend == "tag":
-            metadata.resolve(ctx)
+            ctx.resolve(metadata)
             if name in metadata.symbols:
                 croak("%s %s already set." % (legend, name))
             if ctx.is_empty():
@@ -761,7 +760,7 @@ def fast_export_method(*args):
         else:
             perms = "100644"
         metadata = History(arg)
-        metadata.resolve(ctx)
+        ctx.resolve(metadata)
         if ctx.is_empty():
             ctx.select_all(metadata)
         with backend.lifter(arg):