aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-09-06 20:31:55 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-09-06 20:31:55 +0000
commitf7f3b0bb7d91c74f67023e970cee71ad2ea260da (patch)
tree5944ff8e2c28172497d4ae8262f4eb7f2a843ddf /doc
parent513af0c0df210bbab175f3408013f058cec05ef1 (diff)
downloadikiwiki-f7f3b0bb7d91c74f67023e970cee71ad2ea260da.tar
ikiwiki-f7f3b0bb7d91c74f67023e970cee71ad2ea260da.tar.gz
* Add support for mercurial, contributed by Emanuele Aina.
Diffstat (limited to 'doc')
-rw-r--r--doc/about_rcs_backends.mdwn31
-rw-r--r--doc/features.mdwn16
-rw-r--r--doc/ikiwiki.setup5
-rw-r--r--doc/index.mdwn4
-rw-r--r--doc/mercurial.mdwn8
-rw-r--r--doc/post-commit.mdwn2
-rw-r--r--doc/roadmap.mdwn5
-rw-r--r--doc/setup.mdwn26
-rw-r--r--doc/todo/mercurial.mdwn4
-rw-r--r--doc/usage.mdwn5
10 files changed, 83 insertions, 23 deletions
diff --git a/doc/about_rcs_backends.mdwn b/doc/about_rcs_backends.mdwn
index 0a95b7f54..95d641e72 100644
--- a/doc/about_rcs_backends.mdwn
+++ b/doc/about_rcs_backends.mdwn
@@ -117,8 +117,33 @@ part). GIT doesn't have a similar functionality like 'svn merge -rOLD:NEW
FILE' (please see the relevant comment in mergepast for more details), so I
had to invent an ugly hack just for the purpose.
-## [mercurial](http://www.selenic.com/mercurial/)
+## [Mercurial](http://www.selenic.com/mercurial/)
-Being worked on by Emanuele Aina.
+The Mercurial backend is still in a early phase, so it may not be mature
+enough, but it should be simple to understand and use.
-<http://techn.ocracy.org/ikiwiki>
+As Mercurial is a distributed RCS, it lacks the distinction between
+repository and working copy (every wc is a repo).
+
+This means that the Mercurial backend uses directly the repository as
+working copy (the master M and the working copy W described in the svn
+example are the same thing).
+
+You only need to specify 'srcdir' (the repository M) and 'destdir' (where
+the HTML will be generated).
+
+Master repository M.
+
+RCS commit from the outside are installed into M.
+
+M is directly used as working copy (M is also W).
+
+HTML is generated from the working copy in M. rcs_update() will update
+to the last committed revision in M (the same as 'hg update').
+If you use an 'update' hook you can generate automatically the HTML
+in the destination directory each time 'hg update' is called.
+
+CGI operates on M. rcs_commit() will commit directly in M.
+
+If you have any question or suggestion about the Mercurial backend
+please refer to [Emanuele](http://nerd.ocracy.org/em/).
diff --git a/doc/features.mdwn b/doc/features.mdwn
index d5fa4026b..c568213bf 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -4,18 +4,18 @@ An overview of some of ikiwiki's features:
## Uses a real RCS
Rather than implement its own system for storing page histories etc,
-ikiwiki uses a real RCS. This isn't because we're lazy, it's because a
-real RCS is a good thing to have, and there are advantages to using one
-that are not possible with a standard wiki.
+ikiwiki uses a real Revision Control System. This isn't because we're
+lazy, it's because a real RCS is a good thing to have, and there are
+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 svn. Or work disconnected using svk and push your changes out
-when you come online. Or use git or tla 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]]. 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.)
ikiwiki can be run from a [[post-commit]] hook to update your wiki
-immediately whenever you commit.
+immediately whenever you commit a change using the RCS.
Note that ikiwiki does not require a RCS to function. If you want to
run a simple wiki without page history, it can do that too.
diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup
index 95d2d46af..ac84352df 100644
--- a/doc/ikiwiki.setup
+++ b/doc/ikiwiki.setup
@@ -35,6 +35,11 @@ use IkiWiki::Setup::Standard {
#historyurl => ??,
#diffurl => ??,
+ # Mercurial stuff.
+ #rcs => "mercurial",
+ #historyurl => "http://localhost:8000/", # hg serve'd local repository
+ #diffurl => "http://localhost:8000/?fd=[[changeset]];file=[[file]]",
+
wrappers => [
#{
# # The cgi wrapper.
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 67f099210..2dd90247c 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,8 +1,8 @@
[[ikiwiki_logo|logo/ikiwiki.png]]
ikiwiki is a **wiki compiler**. It converts wiki pages
into html pages suitable for publishing on a website. Unlike a traditional
-wiki, ikiwiki does not have its own means of storing page history.
-Instead it can use [[Subversion]] (or [[Git]] or [[tla]]).
+wiki, ikiwiki does not have its own means of storing page history,
+and instead uses a revision control system (such as [[Subversion]]).
* [[News]] is a blog (built using ikiwiki) of news items about ikiwiki.
It's the best way to find out when there's a new version to [[Download]].
diff --git a/doc/mercurial.mdwn b/doc/mercurial.mdwn
new file mode 100644
index 000000000..5eaae1997
--- /dev/null
+++ b/doc/mercurial.mdwn
@@ -0,0 +1,8 @@
+[Mercurial](http://selenic.com/mercurial) is a distributed revison control
+system developed by Matt Mackall. Ikiwiki supports storing a wiki in a
+mercurial repository.
+
+Ikiwiki can run as a post-update hook to update a wiki whenever commits
+come in. When running as a [[cgi]] with Mercurial, ikiwiki automatically
+commits edited pages, and uses the Mercurial history to generate the
+[[RecentChanges]] page.
diff --git a/doc/post-commit.mdwn b/doc/post-commit.mdwn
index 8def3d751..84375dad0 100644
--- a/doc/post-commit.mdwn
+++ b/doc/post-commit.mdwn
@@ -1,5 +1,5 @@
A post-commit hook is run every time you commit a change to your
-[[subversion]] (or [[git]]) repository. To make the wiki be updated each
+[[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.
The best way to run ikiwiki in a post-commit hook is using a wrapper, which
diff --git a/doc/roadmap.mdwn b/doc/roadmap.mdwn
index 4bd9ab671..a4b4919d4 100644
--- a/doc/roadmap.mdwn
+++ b/doc/roadmap.mdwn
@@ -22,9 +22,8 @@ Released 29 April 2006.
possible)_
* Improved [[todo/html]] stylesheets and templates.
* Improved scalable [[logo]]. _(status: done)_
-* Support for at least one RCS aside from svn. Once it supports two, it should
- quickly grow to support them all.. See [[about_rcs_backends]]
- _(status: supports git and tla in tree)_
+* Support for at other revision control systems aside from svn.
+ See [[about_rcs_backends]] _(status: supports git, tla, mercurial)_
* Support for one other markup language, probably restructured text.
_(status: done, but the rst plugin needs improvement)_
* No serious known [[bugs]]
diff --git a/doc/setup.mdwn b/doc/setup.mdwn
index e2396f777..c6a8f297e 100644
--- a/doc/setup.mdwn
+++ b/doc/setup.mdwn
@@ -1,6 +1,6 @@
So you want to set up your own wiki using ikiwiki? This tutorial will walk
-you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
-[[TLA]], and that has optional support for commits from the web.
+you through setting up a wiki that is stored in [[Subversion]], [[Git]],
+[[TLA]] or [[Mercurial]], and that has optional support for commits from the web.
1. [[Install]] ikiwiki. See [[download]] for where to get it.
@@ -26,6 +26,9 @@ you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
# Edit {arch}/=tagging-method and change the precious
# line to add the .ikiwiki directory to the regexp.
+ # Mercurial
+ hg init /hg/wikirepo
+
3. Check out the repository to make the working copy that ikiwiki will use.
# Subversion
@@ -41,6 +44,12 @@ you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
tla init-tree me@localhost--wiki/wiki--0
tla import
+ # Mercurial
+ # Mercurial uses a single repo approach, so no need to
+ # clone anything. Because the following examples
+ # refer to the ~/wikiwc working copy we symlink it:
+ ln -s /hg/wikirepo ~/wikiwc
+
4. Build your wiki for the first time.
ikiwiki --verbose ~/wikiwc/ ~/public_html/wiki/ \
@@ -70,6 +79,10 @@ you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
tla add index.mdwn
tla commit
+ # Mercurial
+ hg add index.mdwn
+ hg commit -m customised index.mdwn
+
You can also add any files you like from scratch of course.
6. Repeat steps 4 and 5 as desired, editing or adding pages and rebuilding
@@ -92,12 +105,13 @@ you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
that all of these are pointing to the right directories, and read
through and configure the rest of the file to your liking.
- If you want to use git, comment out the subversion stuff, uncomment and
- edit the git stuff.
+ If you want to use something other than subversion, comment out the
+ subversion configuration, and uncomment and edit the configuration for
+ your chosen RCS.
Note that the default file has a block to configure an [[post-commit]]
wrapper to update the wiki. You need to uncomment the related block for
- whatever rcs you use and comment out the other rcs blocks.
+ whatever RCS you use and comment out the other rcs blocks.
When you're satisfied, run `ikiwiki --setup ikiwiki.setup`, and it
will set everything up and update your wiki.
@@ -111,7 +125,7 @@ you through setting up a wiki that is stored in [[Subversion]], [[Git]], or
9. Add [[PageHistory]] links to the top of pages. This requires you to have
setup a repository browser. For Subversion, you may use [[ViewCVS]] or
something similar to access your [[Subversion]] repository. For Git,
- [[Gitweb]] can be used.
+ [[Gitweb]] can be used, etc.
The `historyurl` setting makes ikiwiki add the links, and in that url,
"\[[file]]" is replaced with the name of the file to view. So edit
diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn
new file mode 100644
index 000000000..e25039b13
--- /dev/null
+++ b/doc/todo/mercurial.mdwn
@@ -0,0 +1,4 @@
+* Need to get post commit hook working (or an example of how to use it.)
+* Need --ctime support.
+* rcs_notify is not implemented
+* Is the code sufficiently robust? It just warns when mercurial fails.
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 4456e8c1c..0c7e7d036 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -120,6 +120,11 @@ configuration options of their own.
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.
+
In [[CGI]] mode, with a revision control system enabled pages edited via
the web will be committed. Also, the [[RecentChanges]] link will be placed
on pages.