(revspec, args) = preamble(legend, args)
for arg in args:
metadata = History(arg)
- revspec = metadata.resolve(revspec)
- if name in metadata.symbols:
- croak("%s %s already set." % (legend, name))
- if revspec is None:
- revision = metadata.tip().revision
- revno = metadata.tip().revno
- elif len(revspec) == 1:
- revision = metadata.revno_to_rcs(revspec[0])
- revno = revspec[0]
+ # Semantics differs between tags and branches here
+ if legend == "tag":
+ revspec = metadata.resolve(revspec)
+ if name in metadata.symbols:
+ croak("%s %s already set." % (legend, name))
+ if revspec is None:
+ revision = metadata.tip().revision
+ revno = metadata.tip().revno
+ elif len(revspec) == 1:
+ revision = metadata.revno_to_rcs(revspec[0])
+ revno = revspec[0]
+ else:
+ croak("can't accept a range when %s setting" % legend)
+ elif legend == "branch":
+ if revspec is not None:
+ croak("cannot accept a revision after a branch name")
+ if name not in metadata.symbols:
+ backend.create_branch(metadata.new_branchpoint(metadata_current()))
else:
- croak("can't accept a range when %s setting" % legend)
+ croak("internal error - what is this thing called %s" % legend)
with backend.lifter(arg):
- set_method(name, revision, metadata.current(), arg)
+ set_method(name, revision, arg)
if not quiet and len(args) > 1:
announce("%s %s = %s in " % (legend, name, revno, arg))
def delete_tag(self, tagname, arg):
"Delete a specified tag."
do_or_die("rcs -n{0} {1}".format(tagname, arg))
- def set_tag(self, tagname, revision, _baserev, arg):
+ def set_tag(self, tagname, revision, arg):
"Set a specified tag."
do_or_die("rcs -n{0}:{1} {2}".format(tagname, revision, arg))
+ def create_branch(self, name, revision, arg):
+ croak("branch creation is not yet supported")
def delete_branch(self, branchname, arg):
"Delete a specified branch."
croak("branch deletion is not yet supported")
- def set_branch(self, branchname, revision, baserev, arg):
- "Set the specified branch to be default, creating if required."
- croak("branch creation is not yet supported")
+ def set_branch(self, _name, revision, arg):
+ "Set the specified branch to be default."
+ croak("branch change is not yet supported")
+ #do_or_die("rcs -b%s %s" % (revision, name))
def move(self, source, target):
"Move a file and its history."
do_or_die("mv {0} {1} && mv {2} {3}".format(source, target,