with backend.lifter(arg):
delete_method(name, arg)
if not quiet and len(args) > 1:
- announce("tag %s removed from %s" % (name, arg))
+ announce("%s %s removed from %s" % (legend, name, arg))
return
if args[0] in ("-l", "list"):
args.pop(0)
for arg in args:
master = History(arg)
sys.stdout.write("= %s %s\n" % (arg, ((width - len(arg) - 5) * "=")))
+ if legend == "branch":
+ sys.stdout.write("%s\n" % metadata.branch)
for (key, value) in master.symbols.items():
- # FIXME: sort so trunk is top
+ if legend == "branch" and key == branch.metadata:
+ continue
if master.isbranch(arg) == (legend == "branch"):
sys.stdout.write("%4d\t%s\n" % (master.rcs_to_revno(value),key))
return
name = args.pop(0)
(revspec, args) = preamble("tag", args)
for arg in args:
- master = History(arg)
- revspec = master.resolve(revspec)
+ metadata = History(arg)
+ revspec = metadata.resolve(revspec)
+ if name in metadata.symbols:
+ croak("%s %s already set." % (legend, name))
if revspec is None:
- revision = master.tip().revision
- revno = master.tip().revno
+ revision = metadata.tip().revision
+ revno = metadata.tip().revno
elif len(revspec) == 1:
- revision = master.revno_to_rcs(revspec[0])
+ revision = metadata.revno_to_rcs(revspec[0])
revno = revspec[0]
else:
croak("can't accept a range when %s setting" % legend)
tag_helper(args, "tag", backend.delete_tag, backend.set_tag)
def branch_method(*args):
- "Inspect, create, and delete branch."
- if not os.path.exists(repodir):
- croak("repository subdirectory %s does not exist" % repodir)
- (revspec, args) = preamble("branch", args)
- if len(args) == 1:
- metadata = History(args[0])
- sys.stdout.write("%s\n" % metadata.branch)
- for branchname in metadata.symbols:
- if metadata.isbranch(key):
- if key != metadata.branch:
- sys.stdout.write("%s\n" % key)
- return
- deleteflag = False
- if args[0] == '--':
- args.pop(0)
- elif args[0] in ("delete", "del", "-d"):
- deleteflag = True
- args.pop(0)
- if not args:
- croak("branch requires at least a tagname argument")
- branchname = args.pop(0)
- if not deleteflag:
- if args:
- revspec = metadata.resolve(args[0])
- if revspec[0] == revspec[1]:
- revspec = master.revno_to_rcs(revspec[0])
- else:
- croak("branch cannot accept a range")
- # We have a tag name, and either the delete flag is on or
- # we have a native revision. Remaining args are files.
- for arg in args:
- metadata = History(arg)
- if deleteflag:
- if branchname in metadata.symbols:
- backend.delete_tag(branchname, arg)
- # FIXME: delete all the branch revisions
- if len(args) and not quiet:
- announce("branch %s removed from %s" % (branchname, arg))
- else:
- croak("%s is not a branch in %s" % (branchname, arg))
+ "Inspect, create, and delete branches."
+ tag_helper(args, "branch", backend.delete_branch, backend.set_branch)
def filecmd(legend, hook, args):
(revspec, args) = preamble(legend, args)
def set_tag(self, tagname, revision, arg):
"Set a specified tag."
do_or_die("rcs -N{0}:{1} {2}".format(tagname, revision, arg))
+ def delete_branch(self, branchname, arg):
+ "Delete a specified branch."
+ croak("branch deletion is not yet supported")
+ def set_branch(self, branchname, revision, arg):
+ "Set a specified branch."
+ croak("branch creation is not yet supported")
def move(self, source, target):
"Move a file and its history."
do_or_die("mv {0} {1} && mv {2} {3}".format(source, target,