+[[!meta date="2008-05-06 19:22:09 -0400"]]
+
[[rcs/git]] and other distributed version control systems are all about
making it easy to create and maintain copies and branches of a project. And
this can be used for all sorts of interesting stuff. Since ikiwiki can use
## Overview
-There are three possible level of decentralisation:
+There are several possible level of decentralisation:
0. [[default setup|rcs/git]], no decentralisation
1. [[a simple HTML mirror|tips/Git_repository_and_web_server_on_different_hosts/]]
- 2. separate `srcdir`, still requires a central bare repo - uses [[plugins/pinger]]
- 3. completely distinct ikiwiki installs, synchronised with [[plugins/contrib/gitpush]]
+ 2. [[separate ikiwiki and git servers|tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines]]
+ 3. separate `srcdir`, still requires a central bare repo - uses [[plugins/pinger]]
+ 4. completely distinct ikiwiki installs
Here's a graphic overview of those:
hosts the HTML files, the ikiwiki [[cgi]] but everything else is on
the git server.
+### Separate webserver and git repository, the git srcdir being hosted on the webserver
+
+[[!img Hosting_Ikiwiki_and_master_git_repository_on_different_machines/separate-web-git-servers.svg size=400x]]
+
+This is the configuration described in
+[[tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines]]. One server hosts the web server (and the [[Ikiwiki cgi|cgi]]) and the git source dir; a second server hosts the git bare repository. This can be used when you have very limited access to the git server.
+
### Decentralised pinger setup
[[!img ping-setup.svg size=400x]]
[[!img decentralized_wikis.svg size=400x]]
In this configuration, each wiki is fully independent and pushes its
-changes to other wikis using the [[plugins/contrib/gitpush]] plugin.
+changes to other wikis using git.
## Step by step setup instructions
git_wrapper: /home/user/source.git/hooks/post-commit
git_test_receive_wrapper: /home/user/source.git/hooks/pre-receive
-To do this, the mirror needs to push back to the master, using the [[plugins/contrib/gitpush]] plugin:
+To make the mirror push back to the master, use, for example:
- git_push_to:
- - git://wiki.example.com/
+ git_wrapper_background_command: git push git://wiki.example.com/
-This will ensure that commits done on the mirror will propagate back to the master.
+This will help ensure that commits done on the mirror will propagate back to the master.
## Other ideas