http://liw.fi/ 2009-02-26 03:07:29 -05:00 committed by Joey Hess
parent 4efc5e7b5a
commit 457d330758
1 changed files with 40 additions and 0 deletions

View File

@ -19,3 +19,43 @@ Grepping to verify absence of rcs_diff:
>> I'll see if I can make a patch. The bzr command to get the revision would
>> look like this: bzr diff -r revno:$PREV:/path/to/src..revno:$REVNO:/path/to/src
>> (where $PREV would be $REVNO minus one). --liw
>> Sorry, that was not entirely correct, for some reason. I'll add a patch below that
>> seems to work. I am unfortunately not ready to set up a git repository that you
>> can pull from. --liw
diff --git a/IkiWiki/Plugin/.bzr.pm.swp b/IkiWiki/Plugin/.bzr.pm.swp
new file mode 100644
index 0000000..712120c
Binary files /dev/null and b/IkiWiki/Plugin/.bzr.pm.swp differ
diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
index 783623d..f1d5854 100644
--- a/IkiWiki/Plugin/bzr.pm
+++ b/IkiWiki/Plugin/bzr.pm
@@ -256,7 +256,25 @@ sub rcs_recentchanges ($) {
}
sub rcs_diff ($) {
- # TODO
+ my $taintedrev=shift;
+ my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
+ print STDERR "taintedrev: $taintedrev\nrev: $rev\n";
+
+ my $prevspec = "before:" . $rev;
+ my $revspec = "revno:" . $rev;
+ my @cmdline = ("bzr", "diff", "--old", $config{srcdir},
+ "--new", $config{srcdir},
+ "-r", $prevspec . ".." . $revspec);
+ print STDERR "cmdline: @cmdline\n";
+ open (my $out, "@cmdline |");
+
+ my @lines = <$out>;
+ if (wantarray) {
+ return @lines;
+ }
+ else {
+ return join("", @lines);
+ }
}
sub rcs_getctime ($) {