X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/9a6a28512025c91b7518d8c9b69678e124c44128..2e19c82cb5974b5d2365ae11b6fd4053a299030d:/doc/tips/laptop_wiki_with_git.mdwn diff --git a/doc/tips/laptop_wiki_with_git.mdwn b/doc/tips/laptop_wiki_with_git.mdwn index 857083325..9d11c2fe4 100644 --- a/doc/tips/laptop_wiki_with_git.mdwn +++ b/doc/tips/laptop_wiki_with_git.mdwn @@ -1,4 +1,5 @@ [[!toc]] +[[!meta date="2007-10-22 01:45:55 +0000"]] Using ikiwiki with the [[rcs/git]] backend, some interesting things can be done with creating mirrors (or, really, branches) of a wiki. In this tip, I'll @@ -19,15 +20,14 @@ for setting up ikiwiki with git. Next, `git clone` the source (`$REPOSITORY`, not `$SRCDIR`) from the server to the laptop. -Now, set up a [[web_server|dot_cgi]] on your laptop, if it doesn't -already have one. - Now you need to write a setup file for ikiwiki on the laptop. Mostly this is standard, but a few special settings are needed: * Configure a cgi wrapper as usual, but configure the git wrapper to be written to the `post-commit` hook of the git clone, rather than the usual `post-update` hook. + + git_wrapper: /home/user/foo-wiki/.git/hooks/post-commit * By default, ikiwiki pulls and pushes from `origin`. This shouldn't be done on the laptop, because the origin may not be accessible (when the @@ -36,20 +36,43 @@ is standard, but a few special settings are needed: Make sure you have ikiwiki 2.11 or better installed, and set: - gitorigin_branch => "", + gitorigin_branch: * You can optionally enable to the [[plugins/mirrorlist]] plugin, and configure it so that each page links to the corresponding page on the server. -Now just run `ikiwiki -setup wiki.setup -getctime` and you should be +Now just run `ikiwiki --setup wiki.setup --getctime` and you should be good to go. (You only need the slow `-getctime` option the first time you -run setup.) +run setup.) If you have taken your `wiki.setup` file from an existing +wiki, you may need to change certain parameters to adapt to the paths +on your laptop, a few examples: + + srcdir: /home/user/foo-wiki + destdir: /home/user/public_html + # optional + url: http://foo-wiki.localhost + libdir: /home/user/foo-wiki/.ikiwiki + ENV: + TMPDIR: /home/user/tmp + cookiejar: + file: + +Now, set up a [[web_server|dot_cgi]] on your laptop, if it doesn't +already have one. You can also skip that step if you want only to +render the wiki and not allow edition, in which case you'll want the +following: + + # disable CGI, unless you want to get really funky + cgiurl: + cgi_wrapper: + +You can also direct people to the main server for web edition there. Use standard git commands to handle pulling from and pushing to the server. Note that if changes are pulled from the server, you will need to manually -update the wiki, with a command such as `ikiwiki -setup wiki.setup -refresh`. +update the wiki, with a command such as `ikiwiki --setup wiki.setup --refresh`. If you'd like it to automatically update when changes are merged in, you can simply make a symlink `post-merge` hook pointing at the `post-update` hook ikiwiki created. @@ -67,13 +90,5 @@ as many times as you want (thus being able to have a repository which is used by the ikiwiki CGI, and another which you can use for updating via git). -When you want to update the server from the laptop, do a `git push` from -within the laptop's bare repository. - -To update the laptop from the server, add a section for the laptop to the config file of the server's bare repository: - - [remote "laptop"] - fetch = +refs/*:refs/* - url = me@laptop:/path/to/bare/repository - -Then do a `git push laptop` from within the server's bare repository. +Use standard git commands, run in the laptop's bare git repository +to handle pulling from and pushing to the server.