aboutsummaryrefslogtreecommitdiff
path: root/doc/rcs.mdwn
diff options
context:
space:
mode:
authorJoey Hess <joeyh@debian.org>2013-07-10 21:49:23 -0400
committerJoey Hess <joeyh@debian.org>2013-07-10 21:49:23 -0400
commit1fc3f034191d3eec78b4d5da343e282092a221be (patch)
treed381dca05a61ec159803b92417e5393d8c10ed2b /doc/rcs.mdwn
downloadikiwiki-1fc3f034191d3eec78b4d5da343e282092a221be.tar
ikiwiki-1fc3f034191d3eec78b4d5da343e282092a221be.tar.gz
ikiwiki (3.20130711) unstable; urgency=low
* Deal with git behavior change in 1.7.2 and newer that broke support for commits with an empty commit message. * Pass --no-edit when used with git 1.7.8 and newer. # imported from the archive
Diffstat (limited to 'doc/rcs.mdwn')
-rw-r--r--doc/rcs.mdwn44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/rcs.mdwn b/doc/rcs.mdwn
new file mode 100644
index 000000000..1f6b3c24e
--- /dev/null
+++ b/doc/rcs.mdwn
@@ -0,0 +1,44 @@
+[[!meta title="Revision Control Systems"]]
+
+Ikiwiki supports using several revision control systems for storing page
+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
+[[plugin|plugins/write]]. These days, most people use [[git]].
+
+While all supported revision control systems work well enough for basic
+use, some advanced or special features are not supported in all of them.
+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 |yes |yes |no |yes
+`rcs_rename` |yes |yes |yes |yes |yes |yes |no |yes
+`rcs_remove` |yes |yes |yes |yes |yes |yes |no |yes
+`rcs_diff` |yes |yes |yes |yes |yes |yes |yes |yes
+`rcs_getctime` |fast |slow |slow |slow |fast |slow |slow |slow
+`rcs_getmtime` |fast |slow |slow |slow |fast |no |no |no
+`rcs_preprevert` |yes |no |no |no |no |no |no |no
+`rcs_revert` |yes |no |no |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
+openid username |yes |no |no |no |yes |yes |no |no
+"""]]
+
+Notes:
+
+* 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` and `rcs_getmtime` may be implemented in a fast way (ie, one log
+ lookup for all files), or very slowly (one lookup per file).
+* Openid username support allows avoiding display of Google's ugly openids.
+
+There is a page with [[details]] about how the different systems work with
+ikiwiki, for the curious.