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)
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."