]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/monotone.pm
update
[git.ikiwiki.info.git] / IkiWiki / Plugin / monotone.pm
index 75bf2f458a48e461eadb91c44ffb9d21e89260c4..38313a542aff9bd231b036ae3d47367f55289578 100644 (file)
@@ -42,7 +42,7 @@ sub checkconfig () {
 
        my $version=undef;
        while (<MTN>) {
 
        my $version=undef;
        while (<MTN>) {
-               if (/^monotone (\d+\.\d+) /) {
+               if (/^monotone (\d+\.\d+)(?:(?:\.\d+){0,2}|dev)? /) {
                        $version=$1;
                }
        }
                        $version=$1;
                }
        }
@@ -621,8 +621,9 @@ sub rcs_recentchanges ($) {
        return @ret;
 }
 
        return @ret;
 }
 
-sub rcs_diff ($) {
+sub rcs_diff ($;$) {
        my $rev=shift;
        my $rev=shift;
+       my $maxlines=shift;
        my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint
        
        chdir $config{srcdir}
        my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint
        
        chdir $config{srcdir}
@@ -633,7 +634,11 @@ sub rcs_diff ($) {
                exec("mtn", "diff", "--root=$config{mtnrootdir}", "-r", "p:".$sha1, "-r", $sha1) || error("mtn diff $sha1 failed to run");
        }
 
                exec("mtn", "diff", "--root=$config{mtnrootdir}", "-r", "p:".$sha1, "-r", $sha1) || error("mtn diff $sha1 failed to run");
        }
 
-       my (@lines) = <MTNDIFF>;
+       my @lines;
+       while (my $line=<MTNDIFF>) {
+               last if defined $maxlines && @lines == $maxlines;
+               push @lines, $line;
+       }
 
        close MTNDIFF || debug("mtn diff $sha1 exited $?");
 
 
        close MTNDIFF || debug("mtn diff $sha1 exited $?");