]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/rcs.mdwn
link fix
[git.ikiwiki.info.git] / doc / rcs.mdwn
index a6f3849f492fb3aa53acb19478ab7369154fbfc9..248d930245ea207078485168fc795f48077a0e0f 100644 (file)
@@ -1,4 +1,4 @@
-[[meta title="Revision Control Systems"]]
+[[!meta title="Revision Control Systems"]]
 
 Ikiwiki supports using several revision control systems for storing page
 histories. 
 
 Ikiwiki supports using several revision control systems for storing page
 histories. 
@@ -6,11 +6,31 @@ histories.
 Ikiwiki started out supporting only [[Subversion|svn]], but the interface
 ikiwiki uses to a revision control system is sufficiently simple and
 generic that it can be adapted to work with many systems by writing a
 Ikiwiki started out supporting only [[Subversion|svn]], but the interface
 ikiwiki uses to a revision control system is sufficiently simple and
 generic that it can be adapted to work with many systems by writing a
-[[plugin|plugins/write]]. [[Subversion|svn]] is still a recommended choice;
-[[git]] is another well-tested option.
+[[plugin|plugins/write]]. These days, most people use [[git]].
 
 
-These are all the supported revision control systems:
-[[inline pages="rcs/* and !*/Discussion and !rcs/details" archive=yes]]
+While all supported revision control systems work well enough for basic
+use, some advanced or special features are not supported in all of them.
+Lack of support in [[ikiwiki-makerepo]] or auto.setup can make it harder to
+set up a wiki using that revision control system. The `rcs_commit_staged`
+hook is needed to use [[attachments|plugins/attachment]] or
+[[plugins/comments]]. `rcs_getctime` may be implemented in a fast way
+(ie, one log lookup for all files), or very slowly (one lookup per file).
+And so on. The table below summarises this for each revision control
+system and links to more information about each.
+
+[[!table data="""
+feature             |[[git]]|[[svn]]|[[bzr]]   |[[monotone]]|[[mercurial]]|[[darcs]]|[[tla]]   |[[cvs]]
+[[ikiwiki-makerepo]]|yes    |yes    |yes       |yes         |yes          |yes      |no        |yes
+auto.setup          |yes    |yes    |incomplete|yes         |incomplete   |yes      |incomplete|yes
+`rcs_commit_staged` |yes    |yes    |yes       |yes         |no           |yes      |no        |yes
+`rcs_rename`        |yes    |yes    |yes       |yes         |no           |yes      |no        |yes
+`rcs_remove`        |yes    |yes    |yes       |yes         |no           |yes      |no        |yes
+`rcs_diff`          |yes    |yes    |yes       |yes         |no           |yes      |yes       |yes
+`rcs_getctime`      |fast   |slow   |slow      |slow        |slow         |slow     |slow      |slow
+`rcs_getmtime`      |fast   |slow   |slow      |no          |no           |no       |no        |no
+anonymous push      |yes    |no     |no        |no          |no           |no       |no        |no
+conflict handling   |yes    |yes    |yes       |buggy       |yes          |yes      |yes       |yes
+"""]]
 
 There is a page with [[details]] about how the different systems work with
 ikiwiki, for the curious.
 
 There is a page with [[details]] about how the different systems work with
 ikiwiki, for the curious.