[[ikiwiki|/index]] provides a wiki engine with several [[/features]] unique or uncommon amongst wiki engines:
-* Rather than inventing yet another simplistic, linear version control system, ikiwiki uses a standard version control system such as [[Subversion]] or [[Git]]. You can edit a wiki by committing to your repository, as well as through a traditional web interface. This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software. You can also take full advantage of the features of these systems; for instance, you can keep a local branch of your wiki via [[Git]].
+* Rather than inventing yet another simplistic, linear version control system, ikiwiki uses a standard version control system such as [[rcs/Subversion]] or [[rcs/Git]]. You can edit a wiki by committing to your repository, as well as through a traditional web interface. This makes ikiwiki ideal for collaborative software development; just keep your wiki in version control next to your software. You can also take full advantage of the features of these systems; for instance, you can keep a local branch of your wiki via [[rcs/Git]].
* You can turn any set of pages into a [[blog]] or similar news feed, complete with RSS and Atom support. You can run your weblog on ikiwiki (and [[many people do|ikiwikiusers]]), run a Planet-like [[aggregator|plugins/aggregate]] for external feeds, or keep a [[TODO]] and [[bug|bugs]] list with tags for completed items.
+++ /dev/null
-## [[git]]
-
-I'm currently spending some thoughts on how to extend the
-ikiwiki git infrastructure to allow for the two repositories
-to be on different machines. Has someone else already made
-such thoughts? --[[tschwinge]]
-
-> Okay, I got this working. I'll test and experiment some
-> more and then document it in here. --[[tschwinge]]
#Ikiwiki plugin for the Monotone revision control system.
-I've just made a patch to the ikiwiki code that allows it to use the [Monotone](http://monotone.ca/) revision control system. It is available at:
+I've just made a patch to the ikiwiki code that allows it to use the [[rcs/Monotone]] revision control system. It is available at:
<http://www.cse.unsw.edu.au/~willu/monotone-ikiwiki.diff>
>> push changes back. What I do is use svk, which is a distributed RCS based on svn, edit using text editors on my
>> laptop, and periodically `svk push` up to the server, which triggers a rebuild on the server. I think [[Joey]]
>> works this way too, but I'm not sure. If you don't like editing pages "by hand" then maybe you should look at
->> [[git]] or [[mercurial]] -- they should theoretically allow you to run apache on a working copy which is itself
+>> [[rcs/git]] or [[rcs/mercurial]] -- they should theoretically allow you to run apache on a working copy which is itself
>> a branch of a working copy running on another machine, but I haven't used them so I don't know. --Ethan
>>> Well, by hand editing is just what I'm making sometime. it's just using subversion, in fact.
* **[[css_market/kirkambar.css]]**, contributed by [[Roktas]]. This far from perfect
stylesheet follows a [Gitweb](http://www.kernel.org/git/?p=git/git.git;a=tree;f=gitweb)
- like theme, so it may provide a consistent look'n feel along with the [[git]] backend. ;-)
+ like theme, so it may provide a consistent look'n feel along with the [[rcs/git]] backend. ;-)
You can see it in action on [kirkambar](http://kirkambar.net/) (Turkish content).
[[meta stylesheet="kirkambar"]]
advantages to using one that are not possible with a standard wiki.
Instead of editing pages in a stupid web form, you can use vim and commit
-changes via [[Subversion]]. Or work disconnected using svk and push your
-changes out when you come online. Or use [[git]], [[tla]], or [[mercurial]]
-to work in a distributed fashion all the time. (It's also possible to
-[[plugins/write]] a plugin to support other systems.)
+changes via [[Subversion|rcs/svn]], [[rcs/git]], or any of a number of other
+[[Revision_Control_Systems|rcs]].
ikiwiki can be run from a [[post-commit]] hook to update your wiki
immediately whenever you commit a change using the RCS.
* [Planet Debian upstream](http://updo.debian.net/)
* The [ion window manager homepage](http://modeemi.fi/~tuomov/ion/)
* [Debian Mentors wiki](http://jameswestby.net/mentors/)
-* [LinuxWorld.com's monkey.linuxworld.com contributor wiki](http://monkey.linuxworld.com/) ([[Git]] backend)
+* [LinuxWorld.com's monkey.linuxworld.com contributor wiki](http://monkey.linuxworld.com/) ([[rcs/Git]] backend)
* The [Sparse wiki](http://kernel.org/pub/linux/kernel/people/josh/sparse).
* [The BSD Associate Admin Book Project](http://bsdwiki.reedmedia.net/)
* The [maildirman wiki](http://svcs.cs.pdx.edu/maildirman)
* [debian-community.org](http://debian-community.org/)
* The [cairo graphics library](http://cairographics.org/) website.
* [Nouvelles Informations Positives Libres community](http://wiki.nipl.net/)
-* The [Portland State Aerospace Society](http://psas.pdx.edu) website. Converted from a combination of TWiki and MoinMoin to ikiwiki, including full history ([[Git]] backend).
+* The [Portland State Aerospace Society](http://psas.pdx.edu) website. Converted from a combination of TWiki and MoinMoin to ikiwiki, including full history ([[rcs/Git]] backend).
Personal sites and blogs
========================
* [Christian Aichinger's homepage](http://greek0.net/)
* [Ben A'Lee's homepage](http://bmalee.eu/~bma/)
* [Adam Shand's homepage](http://adam.shand.net/iki/)
-* [Recai Oktaş's homepage](http://kirkambar.net/) (uses [[Git]] backend, Turkish language only).
+* [Recai Oktaş's homepage](http://kirkambar.net/) (uses [[rcs/Git]] backend, Turkish language only).
* [Hess family wiki](http://kitenet.net/~family/)
* [Stefano Zacchiroli's blog](http://www.bononia.it/~zack/blog/)
* [Taquiones: Victor Moral's personal website in Spanish](http://taquiones.net)
-Ikiwiki is a **wiki compiler**. It converts wiki pages
-into HTML pages suitable for publishing on a website. Ikiwiki stores
-pages and history in a revision control system such as [[Subversion]]
-or [[Git]]. There are many other [[features]], including support for
-[[blogging|blog]], as well as a large array of [[plugins]].
+Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages
+suitable for publishing on a website. Ikiwiki stores pages and history in a
+[[revision_control_system|rcs]] such as [[rcs/Subversion]] or [[rcs/Git]].
+There are many other [[features]], including support for [[blogging|blog]],
+as well as a large array of [[plugins]].
[[template id=links]]
[[cpan XML::Feed]], [[cpan File::MimeInfo]], [[cpan Locale::gettext]]
(version 1.04 or newer).
-The [[tla]] support also needs the [[cpan MailTools]] perl module.
-
Various [[plugins]] use other libraries and utlities; see their individual
documentation for details.
## RCS plugins
-ikiwiki's support for revision control systems also uses pluggable perl
-modules. These are in the `IkiWiki::RCS` namespace, for example
+ikiwiki's support for [[revision_control_systems|rcs]] also uses pluggable
+perl modules. These are in the `IkiWiki::RCS` namespace, for example
`IkiWiki::RCS::svn`.
Each RCS plugin must support all the `IkiWiki::rcs_*` functions.
See IkiWiki::RCS::Stub for the full list of functions. It's ok if
`rcs_getctime` does nothing except for throwing an error.
-See [[about_RCS_backends]] for some more info.
+See [[RCS_details|rcs/details]] for some more info.
## PageSpec plugins
-A post-commit hook is run every time you commit a change to your
-[[subversion]] (or [[git]] or [[mercurial]]) repository. To make the wiki be updated each
-time a commit is made, it can be run from (or as) a post-commit hook.
+If your wiki is kept in [[revision control|rcs]], a post-commit hook is run
+every time you commit a change to your repository. To make the wiki be
+updated each time a commit is made, it can be run from (or as) a
+post-commit hook.
The best way to run ikiwiki in a post-commit hook is using a wrapper, which
ikiwiki is usually configured to generate using a setup file.
as opposed to using a editor and the RCS interface.
-## [[Subversion]]
+## [[svn]]
Subversion was the first RCS to be supported by ikiwiki.
There is a patch that needs a bit of work linked to from [[todo/rcs]].
-## [Monotone](http://monotone.ca/)
+## [[Monotone]]
In normal use, monotone has a local database as well as a workspace/working copy.
In ikiwiki terms, the local database takes the role of the master repository, and
database, there is no need to tell ikiwiki explicitly about the "master" database. It
will know.
-The patch currently supports normal committing and getting the history of the page.
+The backend currently supports normal committing and getting the history of the page.
To understand the parallel commit approach, you need to understand monotone's
approach to conflicts:
The system then tries to merge the heads with a merger that will fail if it cannot
resolve the conflict. If the merge succeeds then everything is ok.
-If that merge failed then there are conflicts. In this case, the current patch calls
+If that merge failed then there are conflicts. In this case, the current code calls
merge again with a merger that inserts conflict markers. It commits this new
revision with conflict markers to the repository. It then returns the text to the
user for cleanup. This is less neat than it could be, in that a conflict marked
[Subversion](http://subversion.tigris.org/) is a revision control system. While ikiwiki is relatively
independent of the underlying revision control system, and can easily be
used without one, using it with Subversion is recommended since it's how
-the author uses it. ([[Git]] is another option.)
+the author uses it.
Ikiwiki can run as a [[post-commit]] hook to update a wiki whenever commits
come in. When running as a [[cgi]] with Subversion, ikiwiki automatically
come in. When running as a [[cgi]] with tla, ikiwiki automatically
commits edited pages to the Arch repostory, and uses the Arch
log to generate the [[RecentChanges]] page.
+
+Note that the tla support needs the [[cpan MailTools]] perl module.
-ikiwiki generates the list of recent changes by examining the
-history of the revision control system ([[Subversion]], etc) that the wiki
-is configured to use. You have to have [[CGI]] set up for this feature to be
-enabled.
+ikiwiki generates the list of recent changes by examining the history of
+the [[revision_control_system|rcs]] that the wiki is configured to use. You
+have to have [[CGI]] set up for this feature to be enabled.
-When run with the [[Git]] backend, ikiwiki should use `GIT_AUTHOR_NAME` and `GIT_AUTHOR_EMAIL` rather than munging the commit message. Depending on the semantics you want to imply (does a web edit constitute a commit by the user or by the script?), it could also set `GIT_COMMITTER_NAME` and `GIT_COMMITTER_EMAIL` to the same values. --[[JoshTriplett]]
\ No newline at end of file
+When run with the [[rcs/Git]] backend, ikiwiki should use `GIT_AUTHOR_NAME` and `GIT_AUTHOR_EMAIL` rather than munging the commit message. Depending on the semantics you want to imply (does a web edit constitute a commit by the user or by the script?), it could also set `GIT_COMMITTER_NAME` and `GIT_COMMITTER_EMAIL` to the same values. --[[JoshTriplett]]
Enable email notification of commits. This should be used when running
ikiwiki as a [[post-commit]] hook.
-* --rcs=svn, --no-rcs
+* --rcs=svn|git|.., --no-rcs
- Enable or disable use of a revision control system.
+ Enable or disable use of a [[revision_control_system|rcs]].
- If you use svn, the `source` directory is assumed to be
- a [[Subversion]] working copy.
-
- If you use git, the `source` directory is assumed to be a clone of the
- [[git]] repository.
-
- If you use tla, the `source` directory is assumed to be a tla import.
-
- If you use mercurial, the `source` directory is assumed to be the
- [[mercurial]] repository.
+ The `source` directory will be assumed to be a working copy, or clone, or
+ whatever the revision control system you select uses.
In [[CGI]] mode, with a revision control system enabled, pages edited via
the web will be committed. Also, the [[RecentChanges]] link will be placed
* --svnrepo /svn/wiki
Specify the location of the svn repository for the wiki. This is required
- for using --notify with [[Subversion]].
+ for using --notify with [[Subversion|rcs/svn]].
* --svnpath trunk