]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Rcs/monotone.pm
web commit by https://id.mayfirst.org/dkg/
[git.ikiwiki.info.git] / IkiWiki / Rcs / monotone.pm
index 0ae2c1a3268e26489721de080078e07ab0bacbb5..6a156892a096891e23bd7fb1d879f31198ea44b6 100644 (file)
@@ -136,6 +136,11 @@ sub check_mergerc () { #{{{
                debug("$mergerc doesn't exist. Creating file with default mergers.");
                open (my $out, ">", $mergerc) or error("can't open $mergerc: $!");
                print $out <DATA>;
+               print $out <<"EOF";
+       function note_netsync_revision_received(new_id, revision, certs, session_id)
+               execute("$config{mtnrootdir}/_MTN/ikiwiki-netsync-hook", new_id)
+       end
+EOF
                close $out;
        }
 } #}}}
@@ -342,10 +347,10 @@ sub rcs_commit ($$$;$$) { #{{{
                return $conflict;
        }
        if (defined($config{mtnsync}) && $config{mtnsync}) {
-               if (system("mtn", "--root=$config{mtnrootdir}", "sync",
+               if (system("mtn", "--root=$config{mtnrootdir}", "push",
                           "--quiet", "--ticker=none", "--key",
                           $config{mtnkey}) != 0) {
-                       debug("monotone sync failed");
+                       debug("monotone push failed");
                }
        }
 
@@ -431,10 +436,28 @@ sub rcs_recentchanges ($) { #{{{
                my @changed_files = get_changed_files($automator, $rev);
                my $file;
                
+               my ($out, $err) = $automator->call("parents", $rev);
+               my @parents = ($out =~ m/^($sha1_pattern)$/);
+               my $parent = $parents[0];
+
                foreach $file (@changed_files) {
-                       push @pages, {
-                               page => pagename($file),
-                       } if length $file;
+                       next unless length $file;
+                       
+                       if (defined $config{diffurl} and (@parents == 1)) {
+                               my $diffurl=$config{diffurl};
+                               $diffurl=~s/\[\[r1\]\]/$parent/g;
+                               $diffurl=~s/\[\[r2\]\]/$rev/g;
+                               $diffurl=~s/\[\[file\]\]/$file/g;
+                               push @pages, {
+                                       page => pagename($file),
+                                       diffurl => $diffurl,
+                               };
+                       }
+                       else {
+                               push @pages, {
+                                       page => pagename($file),
+                               }
+                       }
                }
                
                push @ret, {
@@ -556,4 +579,3 @@ __DATA__
                   return true
              end
        }
-EOF