ikiwiki + git
http://fob.po8.org/node/346
Here's an early page documenting setting up ikiwiki with git. It shouldn't be
this hard anymore. :-) See [[setup]] --[[Joey]]
Migrating from svn to git
I'd like to migrate from svn to git, because git is better in general but also has some nice properties that go well together with my use of ikiwiki.. I only change it myself. I want a single git repo so that my website directory is self-contained so that I don't need to drag around a separate svn repository on my computer. Is it possible to use ikiwiki so that it only uses a git repository in the same dir as all files are stored and edited?
Otherwise, I hope migrating is just importing the svn repo to git and then setting up ikiwiki to use git. I don't plan to go back to svn after that so git-svn should only do the import.
Solution
Basis: I only use ikiwiki as a wiki compiler. No cgi or anything.
I imported my svn repo into git with git-svnimport
. I reconfigured ikiwiki to not use any rcs. In ikiwiki.setup
, I have the git repository as srcdir, and a suitable dstdir.
Then, in my git repository, I added this post-commit
hook to refresh the wiki:
#!/bin/sh
# to refresh when changes happen
BASE="/path/to/base/dir"
SETUPFILE="$BASE/ikiwiki.setup"
UNDERLAYDIR="$BASE/underlay"
ikiwiki --refresh --setup "$SETUPFILE" --underlaydir="$UNDERLAYDIR" --verbose
Positives:
- Containment: I only have the above
$BASE
directory to backup: it contains the srcdir and setup files. No external svn repository. This means that suddenly git
and ikiwiki
pair into a stand-alone self-contained wiki compiler kit.
UlrikSverdrup (This is now crossposted to the above mentioned website)
Note that while the post-commit hook above may work in some situations, it will fail (or at least be suboptimal) for web commits. If you're setting up ikiwiki and git for a wiki that allows web commits, you should use
the repository and hook setups in documented in [[setup]] instead. With that method, you do end up with two separate git repos; but it's fine to only back one of them up. :-) --[[Joey]]
gitmanual
Main use case I am trying to accomplish: Edit wiki pages offline.
- Imagine you're the administrator of the site and you want to checkout the wiki sources to give them some love while on a train journey.
- Or you are writing a complex document and you want to simply use your favourite $EDITOR
- Learn a little more about git
Workflow
on webconverger.org aka si.dabase.com aka hendry machine
Wiki page created with ikiwiki. Example usb.mdwn usb
on monty (my laptop)
git-clone ssh://si.dabase.com/home/hendry/wikiwc/.git/
You might want to set some config variables like your email as this tutorial describes.
echo "blah" >> usb.mdwn
Then to commit:
git-commit -a -m "added test"
Send back:
git push origin
on webconverger.org aka si.dabase.com aka hendry machine
You should setup the "The git post-update wrapper" in the ikiwiki.setup file.
Then the wiki should be up-to-date! :)
Ack
Thanks to gitte on #git on Freenode and of course joeyh. Have a look at [[rcs/details]].
Too many pages about git?
I think it would be a good thing if the various git pages where somehow unified. It seems to me that [[tips/laptop_wiki_with_git]] is currently not so different from [[git]]. Let us see what joeyh thinks about the new git pages, but if this level of detail is to go there, I think it could pretty much include (maybe as sub pages) the info in [[tips/laptop_wiki_with_git]] and [[tips/laptop_wiki_with_git_extended]] --[[DavidBremner]]