]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/todo/mercurial.mdwn
web commit by buo: Notes on mercurial usage
[ikiwiki.git] / doc / todo / mercurial.mdwn
index 3af66df730f6d7cf427d06df1f8dc83897c05e38..bf1c3158cced95c215b672f29c7edc9d1cc164e9 100644 (file)
@@ -1,11 +1,15 @@
 * Need to get post commit hook working (or an example of how to use it.)
   * See below. --[[bma]]
-* rcs_notify is not implemented
+* rcs_notify is not implemented (not needed in this branch --[[Joey]])
 * Is the code sufficiently robust? It just warns when mercurial fails.
 * When rcs_commit is called with a $user that is an openid, it will be
   passed through to mercurial -u. Will mercurial choke on this?
  * Nope. Mercurial doesn't expect any particular format for the username, 
    though "Name <address@domain>" is standard. --[[bma]]
+* The way `-u $user` is passed to `hg commit`, there's no way to tell
+  if a given commit came in over the web or was done directly. So
+  rcs_recentchanges hardcodes 'committype => "mercurial"'. See the monotone
+  backend for an example of one that does this right.
 * The rcs_commit implementation seems not to notice if the file has been
   changed since a web edit started. Unlike all the other frontends, which
   use the rcstoken to detect if the web commit started editing an earlier
   blindly overwrite the current file with the web edited version, losing
   any other changes.
 
-Posthook: in $srcdir/.hg/hrc, I have the following
+Posthook: in `$srcdir/.hg/hgrc`, I have the following
 
     [hooks]
     incoming.update = hg up
-    postupdate.ikiwiki = ikiwiki --setup /path/to/ikiwiki.setup --refresh
+    update.ikiwiki = ikiwiki --setup /path/to/ikiwiki.setup --refresh
 
 This should update the working directory and run ikiwiki every time a change is recorded (someone who knows mercurial better than I do may be able to suggest a better way, but this works for me.)
 
@@ -27,3 +31,20 @@ This should update the working directory and run ikiwiki every time a change is
 > and then committed, and the case where a commit was made directly.
 > It can deadlock if the post-commit hook runs with --refresh in the
 > former case. --[[Joey]]
+
+***
+
+I have a few notes on mercurial usage after trying it out for a while:
+
+1. I have been using ikiwiki's `--post-commit` option without apparent problems. I'm the only current user of my wiki, though.
+
+1. The `ikiwiki.setup` file included in ikiwiki works with mercurial's `hgserve`, which is not the preferred solution. Mercurial's `hgwebdir.cgi` is more flexible and doesn't require running a server. I have this in my .setup file:
+
+        # Mercurial stuff.
+        rcs => "mercurial",
+        historyurl => "http://localhost/cgi-bin/hgwebdir.cgi/ikiwiki/log/tip/\[[file]]",
+        diffurl => "http://localhost/cgi-bin/hgwebdir.cgi/ikiwiki/diff/tip/\[[file]]",
+
+1. I have noticed that running `ikiwiki` after a change to the wiki adds files to a directory called `recentchanges` under `$srcdir`. I don't understand why such files are needed; worse, they are not added to mercurial's list of tracked files, so they polute the output of `hg log`. Is this a bug? Should mercurial's commit hook be modified to add these files before the commit?
+
+--buo