From f9eb638a6f904e821b76fedec0e415967f03d888 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 6 Nov 2014 19:51:40 -0500 Subject: [PATCH] Simplest case of diff works. --- src | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src b/src index 84eefa6..04bd99a 100755 --- a/src +++ b/src @@ -258,18 +258,19 @@ def checkout_method(*args): for arg in args: revlist = log_capture(arg) if revspec is None: + revspec = [len(revlist)] revision = "" elif len(revspec) != 1: croak("checkout cannot take a range") elif revspec[0] > len(revlist): - croak("%s has only %d revisions" % len(revlist)) + croak("%s has only %d revisions" % (arg, len(revlist))) else: revision = revlist[len(revlist) - revspec[0]].revision - do_or_die("mv .src/{0},v . && rm -f {0} && co -u{1} {0} ; mv {0},v .src".format(arg, revision)) + do_or_die("mv .src/{0},v . && rm -f {0} && rcs -q -u {0},v && co -q -l{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." + "Dump revision content to standard output." (revspec, args) = preamble("cat", args) for arg in args: revlist = log_capture(arg) @@ -281,6 +282,20 @@ def cat_method(*args): do_or_die("co -q -p -r{1} {0}".format(arg, item.revision), loud=True) do_or_die("mv {0},v .src".format(arg)) +def diff_method(*args): + "Dump diffs between revisions to standard output." + (revspec, args) = preamble("diff", args) + diffopts = "-u" + while args and args[0].startswith("-"): + diffopts += " " + args.pop(0) + for arg in args: + revlist = log_capture(arg) + do_or_die("mv .src/{0},v .".format(arg)) + if revspec is None: + # The || : suppresses the error return from diff(1) + do_or_die("rcsdiff -q {0} {1} || :".format(diffopts, arg), loud=True) + do_or_die("mv {0},v .src".format(arg)) + dispatch = { "help": help_method, "init": init_method, @@ -290,6 +305,7 @@ dispatch = { "log": log_method, "checkout": checkout_method, "cat": cat_method, + "diff": diff_method, } if __name__ == "__main__": -- 2.43.0