]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/tips/laptop_wiki_with_git.mdwn
Added a comment: potential patch
[git.ikiwiki.info.git] / doc / tips / laptop_wiki_with_git.mdwn
index e85f7d12ba1b07a97e8da4692d1609fabb382d05..4011763fc2468ea5b32c957cc5f0a5a1053d4153 100644 (file)
@@ -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.