diff options
Diffstat (limited to 'admin/revdiff')
-rwxr-xr-x | admin/revdiff | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/admin/revdiff b/admin/revdiff index bdd6a2210ce..f145da19c4a 100755 --- a/admin/revdiff +++ b/admin/revdiff @@ -27,13 +27,18 @@ if (@ARGV < 3) 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 @@ sub current_revision ($) } 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) { |