From 92269255b17fe779d4dfe3b13d21f9a03b135ce8 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 6 Nov 2014 18:37:17 -0500 Subject: [PATCH] Checkout is working, but with reversed numbers. --- src | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src b/src index 07b3caa..ddbe76d 100755 --- a/src +++ b/src @@ -253,18 +253,20 @@ def log_method(*args): def checkout_method(*args): "Refresh the working copy from the history file." (revspec, args) = preamble("checkout", args) - if len(revspec) > 1: + if revspec and len(revspec) > 1: croak("checkout needs an empty or singleton revision spec") for arg in args: revlist = log_capture(arg) if revspec is None: revision = "" - elif len(revspec) == 1: - revision = "-r" + revlist[revspec[0]-1].revision - else: + elif len(revspec) != 1: croak("checkout cannot take a range") - do_or_die("mv .src/{0},v . && rm -f {0} && co -l {1} {0} && mv {0},v .src".format(arg, revision)) - announce("%s <- %d" % (arg, len(revlist))) + elif revspec[0] > len(revlist): + croak("%s has only %d revisions" % len(revlist)) + else: + revision = revlist[revspec[0]-1].revision + do_or_die("mv .src/{0},v . && rm -f {0} && co -u{1} {0} ; mv {0},v .src".format(arg, revision)) + announce("%s <- %d" % (arg, revspec[0])) def cat_method(*args): "Dump revision content to srandard output." -- 2.43.0