]> thyrsus.com Git - src.git/commitdiff
More tag code refactoring.
authorEric S. Raymond <esr@thyrsus.com>
Sun, 9 Nov 2014 13:52:41 +0000 (08:52 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Sun, 9 Nov 2014 13:52:41 +0000 (08:52 -0500)
src

diff --git a/src b/src
index a56becfc1e0c82f372960dca0c147dd5a8e5843c..0ac4622bd5f5e15487d64b82532122abad98f74d 100755 (executable)
--- a/src
+++ b/src
@@ -633,28 +633,7 @@ def delete_tags(args):
             if not quiet and len(args) > 1:
                 announce("tag %s removed from %s" % (tagname, arg))
 
-def set_tags(args):
-    if not args:
-        croak("setting tags requires a tagname argument")
-    tagname = args.pop(0)
-    (revspec, args) = preamble("tag", args)
-    for arg in args:
-        master = History(arg)
-        revspec = master.resolve(revspec)
-        if revspec is None:
-            revision = master.tip().revision
-            revno = master.tip().revno
-        elif len(revspec) == 1:
-            revision = master.revno_to_rcs(revspec[0])
-            revno = revspec[0]
-        else:
-            croak("can't accept a range when setting tags.")
-        with backend.lifter(arg):
-            backend.set_tag(tagname, revision, arg)
-            if not quiet and len(args) > 1:
-                announce("tag %s = %s in " % (tagname, revno, arg))
-
-def tag_helper(args, list_tags, delete_tags, set_tags):
+def tag_helper(args, legend, list_tags, delete_tags, set_method):
     "Dispatch to handlers for tag and branch manipulation."
     if not os.path.exists(repodir):
         croak("repository subdirectory %s does not exist" % repodir)
@@ -671,11 +650,30 @@ def tag_helper(args, list_tags, delete_tags, set_tags):
         if args[0] in ("-l", "list"):
             list_tags(*args[1:])
             return
-    set_tags(args)
+    # set_tags case
+    if not args:
+        croak("%s setting requires a name argument" % legend)
+    name = args.pop(0)
+    (revspec, args) = preamble("tag", args)
+    for arg in args:
+        master = History(arg)
+        revspec = master.resolve(revspec)
+        if revspec is None:
+            revision = master.tip().revision
+            revno = master.tip().revno
+        elif len(revspec) == 1:
+            revision = master.revno_to_rcs(revspec[0])
+            revno = revspec[0]
+        else:
+            croak("can't accept a range when %s setting" % legend)
+        with backend.lifter(arg):
+            set_method(name, revision, arg)
+            if not quiet and len(args) > 1:
+                announce("%s %s = %s in " % (legend, name, revno, arg))
 
 def tag_method(*args):
     "Inspect, create, and delete tags."
-    tag_helper(args, list_tags, delete_tags, set_tags)
+    tag_helper(args, "tag", list_tags, delete_tags, backend.set_tag)
 
 def branch_method(*args):
     "Inspect, create, and delete branch."