]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/bugs/Problem_with_editing_page_after_first_SVN_commit.mdwn
web commit by http://joey.kitenet.net/
[git.ikiwiki.info.git] / doc / bugs / Problem_with_editing_page_after_first_SVN_commit.mdwn
index 3d59c7fb8abc67f7b709cdc3b3453c33e6b8730f..e9c275838d93e56f55537e51d2ac7ed72a6793d1 100644 (file)
@@ -142,7 +142,65 @@ I also had problem with no webpages getting generated via the CGI unless I ran i
 I can't find the discussion here about in the ikiwiki website though. I think it was removed and now I can't find it in the history.
 My problem was caused by not having a revision system defined, so it defaulted to subversion (but I didn't have that installed).
 
+> Note that that confusing default to svn has been changed.. And you're
+> right about how the setup file is used below, BTW. --[[Joey]]
+
 As for your .setup file you can put it anywhere. I don't  think the CGI knows where it is at because its settings are set in the "wrapper".
 In my case, my setup file is in a different home and owned by a different user than the CGI or my generated website. By the way, I also don't keep my .ikiwiki private directory in my source directory by setting wikistatedir (which doesn't seem to be documented).
 
---[[JeremyReed]]
\ No newline at end of file
+--[[JeremyReed]]
+
+> Never mind about indentation, Jeremy! :) Thanks a lot you're interested in
+> my problem and you try to help me.
+
+> I use RCS backend and store my ikiwiki sources in SVN repo. Here is my SVN
+> related settings:
+>
+>        rcs => "svn",
+>        svnrepo => "/var/lib/svn/ikiwiki",
+>        svnpath => "trunk/pages",
+>
+> I've noticed the following piece of code in `/usr/share/perl5/IkiWiki/CGI.pm`
+> file (`cgi_editpage()` subroutine):
+>
+>        # save page
+>        page_locked($page, $session);
+>
+>        my $content=$form->field('editcontent');
+>
+>        $content=~s/\r\n/\n/g;
+>        $content=~s/\r/\n/g;
+>        writefile($file, $config{srcdir}, $content);
+>
+>        if ($config{rcs}) {
+>                # Here is RCS stuff
+>                # ...
+>        }
+>        else {
+>                require IkiWiki::Render;
+>                refresh();
+>                saveindex();
+>        }
+>
+>        # The trailing question mark tries to avoid broken
+>        # caches and get the most recent version of the page.
+>        redirect($q, "$config{url}/".htmlpage($page)."?updated");
+>
+> As you can see ikiwiki calls `saveindex()` subroutine if `rcs` variable
+> is not defined. I don't understand it, because in this way ikiwiki
+> doesn't update my `.ikiwiki/index` file. Joey, could you please
+> enlight me here ;)
+>
+> BTW, I also noticed `wikistatedir` variable in the ikiwiki code
+> and I couldn't find any information about it in ikiwiki docs :) --Pawel
+
+>> wikistatedir is a non-configurable internal value.
+>> 
+>> What happens during an edit with the code you quoted is that the "rcs
+>> stuff" results in a commit of the page to svn. This results in the
+>> ikiwiki svn post-commit hook running. The post-commit hook updates the
+>> wiki, and calls saveindex. That's why it's not called in the RCS path in
+>> the code above.
+>> 
+>> It sounds like your post-commit hook is still not set up, or is failing
+>> for some reason (permissions perhaps?) --[[Joey]]