X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/cddc335b2bd98a302b261200c12d61b05476d727..023e3c47a4276bbb65aa88600778dd5a183c2e71:/IkiWiki/Rcs/monotone.pm?ds=sidebyside diff --git a/IkiWiki/Rcs/monotone.pm b/IkiWiki/Rcs/monotone.pm index 0ae2c1a32..6a156892a 100644 --- a/IkiWiki/Rcs/monotone.pm +++ b/IkiWiki/Rcs/monotone.pm @@ -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 ; + 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