I have a strange problem with editing any page after its first SVN commit.
I'm not sure whether it's my ikiwiki backport bug or my misunderstanding
how ikiwiki works.
Assume that I have Foo page with any content and I want to put there link
to Bar page and next create the page. I do following steps:
-
Click Edit link on Foo page
-
Put the link to Bar page there and commit it by clicking "Save Page"
button
The Bar page is rendered correctly and now I can see ?Bar link. The URL
in the address bar of my browser is
http://my.host.com/wiki/foo.html?updated
- Click ?Bar link
Now I can see textarea for editing of page. It's empty, of course.
The page doesn't exists in my SVN repo yet and my Apache server knows
noting about it:
$ find /my/ikiwiki/src/dir/ -type f -name bar.mdwn
$ find /my/ikiwiki/dst/dir/ -type f -name bar.html
- Add some initial content and click "Save Page" button
to commit changes
The Foo page also is rendered correctly and now I can see what I wrote.
The URL in the address bar of my browser is
http://my.host.com/wiki/bar.html?updated
The page was added to the SVN repo and my Apache is able to serve it now:
$ find /my/ikiwiki/src/dir/ -type f -name bar.mdwn
/my/ikiwiki/src/dir/bar.mdwn
$ find /my/ikiwiki/dst/dir/ -type f -name bar.html
/my/ikiwiki/dst/dir/bar.html
- Change the content of Bar page by clicking Edit link
I can't do it, because the textarea is empty again. I have to run
ikiwiki --setup ikiwiki.setup
command by hand to rebuild the page.
Then I can edit it.
Where is my mistake?
--Pawel
It's not clear which Edit link you clicked in step 5. Is it the link on
the new page, or the old link back on page Foo that you clicked on before
to create Bar? It would also be good to see the URL you're at in step 5.
--[[Joey]]
It was Edit link on new Bar page, of course. The URL in step 5 was
http://my.host.com/wiki/ikiwiki.cgi?page=bar&do=edit.
I've forget to add in my previous post that $pagesources{$page}
(cgi_editpage subroutine of /usr/share/perl5/IkiWiki/CGI.pm file)
doesn't exist in step 5. It exists after rebuilding all ikiwiki
pages by hand.
BTW, where does ikiwiki store information about rendered pages?
Is it /my/ikiwiki/src/dir/.ikiwiki/
directory?
--Pawel
Well, the missing %pagesources value explains the symptom for sure.
ikiwiki stores its state in .ikiwiki/index, and that should include
info about the new page you've created, including the source file for
it, which is where the data in %pagesources comes from.
It sounds to me like somehow, when you commit a change to svn by
saving the page, it rebuilds the wiki, but does not update the index
file. Maybe it's crashing before it can save the index file. Or maybe
it's possibly be misconfigured, and updating a different index file in
a different copy of the source? You should be able to figure out what's
going on my looking at how the index file changes (or not) when you
create the new page. --[[Joey]]
I've checked that my ikiwiki really doesn't touch .ikiwiki/index
file
when I create and save a new page. In error.log
file of my Apache2
server I can't see any "Permission denied" messages, but I suspect
that a reason of my problem can be the bad access permissions:
root@my.host:/my/ikiwiki/src/dir# ls -ld .ikiwiki/
drwxrwsr-x 2 www-data src 4096 2007-01-11 10:00 .ikiwiki/
root@my.host:/my/ikiwiki/src/dir# cd .ikiwiki/
root@my.host:/my/ikiwiki/src/dir/.ikiwiki# ls -l
razem 48
-rw-rw-r-- 1 www-data src 17353 2007-01-11 10:00 index
-rw-rw-r-- 1 www-data src 0 2007-01-11 10:17 lockfile
-rw------- 1 www-data src 24576 2007-01-11 10:17 sessions.db
-rw------- 1 www-data src 0 2006-11-15 14:45 sessions.db.lck
-rw------- 1 www-data src 404 2007-01-08 10:24 userdb
What do you think about it? Does it look good? My ikiwiki runs
under control of Apache2 server and it's configured to run
as www-data
user and www-data
group. --Pawel
It's a bit weird to run ikiwiki as www-data. This means that www-data
can write to your subversion repository? And the svn post-commit hook
also runs as www-data? It certianly could be some permissions issue
that is not being reported properly. --[[Joey]]
No, my SVN post-commit
hook runs as root
(uid) and www-data
(gid).
Only root
user and src
group have write permissions to my SVN repo.
Could you please show me your permissions for repodir
, srcdir
and destdir
and how runs your Apache server? --Pawel
Ugh, root? My permissions setup is simple, ikiwiki runs as a single
user, and that same user can commit to the svn repo and write to
all files. --[[Joey]]
What's your user? Please show me result of ls -ld dir
for
directories above :) --Pawel
All my directories are 755 joey:joey. --[[Joey]]