X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/81eadbda0b4b63603880d8669ba9c0dbe92a003c..e289e0b4ba48d01e24586dbdcaeda367763edd67:/doc/rcs.mdwn diff --git a/doc/rcs.mdwn b/doc/rcs.mdwn index a6f3849f4..248d93024 100644 --- a/doc/rcs.mdwn +++ b/doc/rcs.mdwn @@ -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. @@ -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 -[[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.