X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/df66288c4db6f670e3c258058712c9835f0ebf20..10a21ef3e2c1ffd2b6a1f8352106a0149b540cf2:/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 e85f7d12b..4011763fc 100644 --- a/doc/tips/laptop_wiki_with_git.mdwn +++ b/doc/tips/laptop_wiki_with_git.mdwn @@ -10,7 +10,7 @@ version on the laptop, perhaps while offline. You can browse and edit the wiki using a local web server. When you're ready, you can manually push the changes to the main wiki on the server. -## Original approach +## simple clone approach First, set up the wiki on the server, if it isn't already. Nothing special needs to be done here, just follow the regular instructions in [[setup]] @@ -19,15 +19,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,7 +35,7 @@ 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 @@ -44,7 +43,30 @@ is standard, but a few special settings are needed: 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. @@ -54,13 +76,18 @@ 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. -## Alternative Approach +## bare mirror approach As above, set up a normal ikiwiki on the server, with the usual bare repository. Next, `git clone --mirror server:/path/to/bare/repository` -This will be used as the $REPOSITORY on the laptop. Then you can follow the instructions in [[setup by hand|/setup/byhand]] as per a normal ikiwiki installation. -This means that you can clone from the local bare repository 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). +This will be used as the $REPOSITORY on the laptop. Then you can follow +the instructions in [[setup by hand|/setup/byhand]] as per a normal ikiwiki +installation. This means that you can clone from the local bare repository +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, and likewise do a `git pull` to update the laptop from the server. +Use standard git commands, run in the laptop's bare git repository +to handle pulling from and pushing to the server.