aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/bzr.pm
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki/Plugin/bzr.pm')
-rw-r--r--IkiWiki/Plugin/bzr.pm20
1 files changed, 20 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
index 16c959069..883007367 100644
--- a/IkiWiki/Plugin/bzr.pm
+++ b/IkiWiki/Plugin/bzr.pm
@@ -255,6 +255,26 @@ sub rcs_recentchanges ($) {
return @ret;
}
+sub rcs_diff ($) {
+ my $taintedrev=shift;
+ my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
+
+ my $prevspec = "before:" . $rev;
+ my $revspec = "revno:" . $rev;
+ my @cmdline = ("bzr", "diff", "--old", $config{srcdir},
+ "--new", $config{srcdir},
+ "-r", $prevspec . ".." . $revspec);
+ open (my $out, "@cmdline |");
+
+ my @lines = <$out>;
+ if (wantarray) {
+ return @lines;
+ }
+ else {
+ return join("", @lines);
+ }
+}
+
sub rcs_getctime ($) {
my ($file) = @_;