]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/tips/laptop_wiki_with_git.mdwn
new version of the branch; thanks to chrysn for early feedback
[git.ikiwiki.info.git] / doc / tips / laptop_wiki_with_git.mdwn
index 998ac74430344fc78df2928c3c3e3e9dae40454b..4011763fc2468ea5b32c957cc5f0a5a1053d4153 100644 (file)
@@ -1,3 +1,5 @@
+[[!toc]]
+
 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
 assume your wiki is located on a server, and you want to take a copy with
 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
 assume your wiki is located on a server, and you want to take a copy with
@@ -8,6 +10,8 @@ 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.
 
 wiki using a local web server. When you're ready, you can manually push the
 changes to the main wiki on the server.
 
+## 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]]
 for setting up ikiwiki with git.
 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]]
 for setting up ikiwiki with git.
@@ -15,15 +19,14 @@ for setting up ikiwiki with git.
 Next, `git clone` the source (`$REPOSITORY`, not `$SRCDIR`)
 from the server to the laptop.
 
 Next, `git clone` the source (`$REPOSITORY`, not `$SRCDIR`)
 from the server to the laptop.
 
-Now, set up a [[web_server|apache_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.
 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
 
 * 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
@@ -32,7 +35,7 @@ is standard, but a few special settings are needed:
 
   Make sure you have ikiwiki 2.11 or better installed, and set:
   
 
   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
 
 * You can optionally enable to the [[plugins/mirrorlist]] plugin,
   and configure it so that each page links to the corresponding page on the
@@ -40,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
 
 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.
 
 
 Use standard git commands to handle pulling from and pushing to the server.
 
@@ -49,3 +75,19 @@ 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.
 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.
+
+## 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).
+
+Use standard git commands, run in the laptop's bare git repository
+to handle pulling from and pushing to the server.