(no commit message)
authorhttp://thm.id.fedoraproject.org/ <http://thm.id.fedoraproject.org/@web>
Tue, 16 Dec 2008 11:54:55 +0000 (06:54 -0500)
committerJoey Hess <joey@kitenet.net>
Tue, 16 Dec 2008 11:54:55 +0000 (06:54 -0500)
doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn [new file with mode: 0644]

diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
new file mode 100644 (file)
index 0000000..fb407a2
--- /dev/null
@@ -0,0 +1,21 @@
+When using the monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
+
+    diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
+    --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig        2008-11-12 23:45:24.000000000 +0100
+    +++ ikiwiki/IkiWiki/Plugin/monotone.pm     2008-12-16 12:41:38.000000000 +0100
+    @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
+       my $child = open(MTNLOG, "-|");
+       if (! $child) {
+               exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
+    -               "--brief") || error("mtn log failed to run");
+    +               "--brief", "--last=$num") || error("mtn log failed to run");
+       }
+     
+    -  while (($num >= 0) and (my $line = <MTNLOG>)) {
+    +  while (my $line = <MTNLOG>) {
+               if ($line =~ m/^($sha1_pattern)/) {
+                       push @revs, $1;
+    -                  $num -= 1;
+               }
+       }
+       close MTNLOG || debug("mtn log exited $?");