From: Eric S. Raymond Date: Sun, 9 Nov 2014 17:29:22 +0000 (-0500) Subject: Implemented rename with now new methods. X-Git-Tag: 0.3~4 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=9a0e229328dafeb94315e26690a129b9d4ca65f7;p=src.git Implemented rename with now new methods. --- diff --git a/src b/src index 0d31e1d..8965e60 100755 --- a/src +++ b/src @@ -658,10 +658,25 @@ def tag_helper(args, legend, delete_method, set_method): if master.isbranch(arg) == (legend == "branch"): sys.stdout.write("%4d\t%s\n" % (master.rcs_to_revno(value),key)) return + if args[0] in ("-r", "rename"): + args.pop(0) + if name not in metadata.symbols: + croak("cannot rename nonexistent %s" % legend) + if not args: + croak("rename requires a second name argement") + newname = args.pop(0) + if newname in metadata.symbols: + croak("cannot rename to existing %s" % legend) + (revspec, args) = preamble(legend, args) + if revspec is not None: + croak("can't accept a revision-spec when %s renaming." % legend) + # In the case of a branch, we want to change only the tag reference. + backend.tag_set(newname, self.symbols[name], arg) + backend.tag_delete(name, arg) if not args: croak("%s setting requires a name argument" % legend) name = args.pop(0) - (revspec, args) = preamble("tag", args) + (revspec, args) = preamble(legend, args) for arg in args: metadata = History(arg) revspec = metadata.resolve(revspec)