more data
authorhttp://schmonz.livejournal.com/ <http://schmonz.livejournal.com/@web>
Mon, 27 Jul 2009 04:25:37 +0000 (00:25 -0400)
committerJoey Hess <joey@kitenet.net>
Mon, 27 Jul 2009 04:25:37 +0000 (00:25 -0400)
doc/post-commit/discussion.mdwn

index 555967625d732216fac012667f7ab1b41ea828a2..c15396978f11ec6983293dd54fe10cdf6c580c0b 100644 (file)
@@ -48,11 +48,13 @@ Thanks
 
 -----
 
-I'm working on an [[rcs]] plugin for CVS, in order to integrate ikiwiki at sites where that's all they've got. What's working so far: web commit (post-commit hook and all), diff, add (under certain conditions), and remove. What's not working: with rcs_add(), iff any of the new page's parent dirs aren't already under CVS control and the post-commit hook is enabled, the browser and ikiwiki stall for several seconds trying to add it, then time out. (If I kill ikiwiki when this is happening, it cvs adds the topmost parent that needed adding; if I wait for timeout, it doesn't. I think.) If I disable the post-commit hook and do the same kind of thing, the page is created and saved.
+I'm working on an [[rcs]] plugin for CVS, adapted from `svn.pm`, in order to integrate ikiwiki at sites where that's all they've got. What's working so far: web commit (post-commit hook and all), diff, add (under certain conditions), and remove. What's not working: with rcs_add(), iff any of the new page's parent dirs aren't already under CVS control and the post-commit hook is enabled, the browser and ikiwiki stall for several seconds trying to add it, then time out. (If I kill ikiwiki when this is happening, it cvs adds the topmost parent that needed adding; if I wait for timeout, it doesn't. I think.) If I disable the post-commit hook and do the same kind of thing, the page is created and saved.
 
 In case you're lucky enough not to know, cvs adds on directories are weird -- they operate immediately against the repository, unlike file adds:
 
     $ cvs add randomdir
     Directory /Users/schmonz/Documents/cvswiki/repository/ikiwiki/randomdir added to the repository
 
+I was able to work out that when I'm seeing this page save misbehavior, my plugin is somewhere inside `system("cvs", "-Q", "add", "$file")`, which was never returning. If I changed it to anything other than cvs it iterated correctly over all the parent dirs which needed to be added to CVS, in the proper order. (cvs add isn't recursive, sadly.)
+
 Can you offer an educated guess what's going wrong here? --[[Schmonz]]