aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/mercurial.pm
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki/Plugin/mercurial.pm')
-rw-r--r--IkiWiki/Plugin/mercurial.pm18
1 files changed, 17 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/mercurial.pm b/IkiWiki/Plugin/mercurial.pm
index e64e00512..102b4692b 100644
--- a/IkiWiki/Plugin/mercurial.pm
+++ b/IkiWiki/Plugin/mercurial.pm
@@ -307,7 +307,23 @@ sub rcs_recentchanges ($) {
}
sub rcs_diff ($;$) {
- # TODO
+ my $rev=shift;
+ my $maxlines=shift;
+ my @lines;
+ my $addlines=sub {
+ my $line=shift;
+ return if defined $maxlines && @lines == $maxlines;
+ push @lines, $line."\n"
+ if (@lines || $line=~/^diff --git/);
+ return 1;
+ };
+ safe_hg(undef, $addlines, "hg", "diff", "-c", $rev, "-g");
+ if (wantarray) {
+ return @lines;
+ }
+ else {
+ return join("", @lines);
+ }
}
{