brain gradually engaging
authorhttp://schmonz.livejournal.com/ <http://schmonz.livejournal.com/@web>
Fri, 31 Jul 2009 19:21:29 +0000 (15:21 -0400)
committerJoey Hess <joey@kitenet.net>
Fri, 31 Jul 2009 19:21:29 +0000 (15:21 -0400)
doc/post-commit/discussion.mdwn

index bbe52910693c1bb4379ee2ac3bc7fa3bded2f41f..3caa07a85be140a04567a26cf2e6e6823aa808fe 100644 (file)
@@ -60,3 +60,5 @@ I was able to work out that when I'm seeing this page save misbehavior, my plugi
 Can you offer an educated guess what's going wrong here? --[[Schmonz]]
 
 > Got `rcs_recentchanges` working, believe it or not, thanks to [cvsps](http://www.cobite.com/cvsps/). If I can figure out this interaction between the post-commit hook and `cvs add` on directories, the CVS plugin is mostly done. Could it be a locking issue? Where should I be looking? Any suggestions appreciated. --[[Schmonz]]
 Can you offer an educated guess what's going wrong here? --[[Schmonz]]
 
 > Got `rcs_recentchanges` working, believe it or not, thanks to [cvsps](http://www.cobite.com/cvsps/). If I can figure out this interaction between the post-commit hook and `cvs add` on directories, the CVS plugin is mostly done. Could it be a locking issue? Where should I be looking? Any suggestions appreciated. --[[Schmonz]]
+
+>> Okay, it is definitely a locking issue. First, on the conjecture that `cvs add <directory>` was triggering the post-commit hook and confusing ikiwiki, I wrapped the ikiwiki post-commit binary with a shell script that exited 0 if the triggering file was a directory. The first half of the conjecture was correct -- my wrapper got triggered -- but the web add of `one/two/three.mdwn` (where `one` and `two` weren't existing CVS-controlled dirs) remained hung as before. There were two ikiwiki processes running. On a whim, I killed the one with the higher PID; `cvs add one` immediately completed successfully, then back to a hang and two ikiwiki processes. I killed the newer one again and then `cvs add one/two` and `cvs add one/two/three.mdwn` completed and the web add was successful.