1 [[!meta title="Revision Control Systems"]]
3 Ikiwiki supports using several revision control systems for storing page
6 Ikiwiki started out supporting only [[Subversion|svn]], but the interface
7 ikiwiki uses to a revision control system is sufficiently simple and
8 generic that it can be adapted to work with many systems by writing a
9 [[plugin|plugins/write]]. [[Subversion|svn]] is still a recommended choice;
10 [[git]] is another well-tested option.
12 While all supported revision control systems work well enough for basic
13 use, some advanced or special features are not supported in all of them.
14 Lack of support in [[ikiwiki-makerepo]] or auto.setup can make it harder to
15 set up a wiki using that revision control system. The `rcs_commit_staged`
16 hook is needed to use [[attachments|plugins/attachment]] or
17 [[plugins/comments]]. And so on. The table below summarises this for each
18 revision control system and links to more information about each.
21 feature |[[git]]|[[svn]]|[[bzr]] |[[monotone]]|[[mercurial]]|[[darcs]]|[[tla]] |[[cvs]]
22 [[ikiwiki-makerepo]]|yes |yes |yes |yes |yes |yes |no |yes
23 auto.setup |yes |yes |incomplete|yes |incomplete |yes |incomplete|yes
24 `rcs_commit_staged` |yes |yes |yes |yes |no |yes |no |yes
25 `rcs_rename` |yes |yes |yes |yes |no |yes |no |yes
26 `rcs_remove` |yes |yes |yes |yes |no |yes |no |yes
27 `rcs_diff` |yes |yes |yes |yes |no |yes |yes |yes
28 anonymous push |yes |no |no |no |no |no |no |no
29 conflict handling |yes |yes |yes |buggy |yes |yes |yes |yes
32 There is a page with [[details]] about how the different systems work with
33 ikiwiki, for the curious.