changeset 39132:570be39418f4

Allow -<number> for OLD.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 05 Sep 2001 08:02:18 +0000
parents 544f85c0de57
children e573c7f532dd
files admin/revdiff
diffstat 1 files changed, 19 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/admin/revdiff	Wed Sep 05 07:43:47 2001 +0000
+++ b/admin/revdiff	Wed Sep 05 08:02:18 2001 +0000
@@ -27,13 +27,18 @@
 revdiff FILE OLD NEW
     
 Get a diff of FILE between revisions OLD and NEW.  Store the
-diff in a file named FILE-OLD-NEW.diff.  If NEW is +<number>
-or -<number>, build diffs between revisions OLD and OLD +/- <number>.
-OLD being `-' means use FILE's current revision.
+diff in a file named FILE-OLD-NEW.diff.
+
+If OLD is `-' use FILE's current revision for OLD.  If OLD is
+`-<number>', use the Nth revision before the current one for OLD.
+
+If NEW is +<number> or -<number>, build diffs between revisions OLD
+and OLD +/- <number>.
 
 Examples:
 
 revdiff FILE - -1      get the latest change of FILE
+revdiff FILE -1 +1     also gets the latest change of FILE
 revdiff FILE 1.500 +2  get diffs 1.500-1.501 and 1.501-1.502.
 
 USAGE
@@ -73,9 +78,17 @@
 }
 
 if ($old eq "-")
-{
-  $old = current_revision ($file);
-}
+  {
+    $old = current_revision ($file);
+  }
+elsif ($old =~ /^-(\d+)$/) 
+  {
+    my $offset = $1;
+    $old = current_revision ($file);
+    die "Internal error" unless $old =~ /(.*)\.(\d+)$/;
+    my $minor = $2 - $offset;
+    $old = sprintf ("%d.%d", $1, $minor);
+  }
 
 while (@ARGV) 
   {