From 9a0e229328dafeb94315e26690a129b9d4ca65f7 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sun, 9 Nov 2014 12:29:22 -0500 Subject: [PATCH] Implemented rename with now new methods. --- src | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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) -- 2.43.0