]> sipb.mit.edu Git - ikiwiki.git/blob - doc/bugs/Monotone_rcs_support.mdwn
web commit by http://willu.myopenid.com/: respond to comments on the patch
[ikiwiki.git] / doc / bugs / Monotone_rcs_support.mdwn
1 #Ikiwiki plugin for the Monotone revision control system.
2
3 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:
4
5 <http://www.cse.unsw.edu.au/~willu/monotone-ikiwiki.diff>
6
7 At the moment it is basically complete.  At present rcs_notify() is implemeted but untested, the rest is implemented and tested.
8
9 In an older version of the patch 
10 there was support for simultaneous commits, but any conflicts left the repository in an unmerged state which had to be cleaned up using the non-web
11 monotone interface.  The user's data was still stored, and the user was informed if that happened.
12
13 The current version of the patch handles conflicts through the web interface.  It is still not perfect as it will break if there is a rename that conflicts with a web change (but so will the other Rcs plugins I think).  It also commits a revision with conflict markers if there is a conflict requiring such markers... ick.
14
15 Note: This patch requires the Monotone perl module, which is only available in Monotone 0.36 or later.  The module is in the Monotone contrib/ directory.  While 0.36 is relatively new, that Monotone module itself will work with a monotone binary back quite a few releases.
16 Apparently this module did't make some versions of the monotone 0.36 release tarball.  It is available from the monotone repository here: <http://viewmtn.angrygoats.net/branch/changes/net.venge.monotone>.
17
18 > The setup instructions to add 40 lines of code to monotonerc is pretty frightning stuff.
19 > Is there some way this can be automated? --[[Joey]]
20
21 >> I've committed a bunch of this to monotone so that in future it could be removed.  I didn't
22 >> want to remove it from the instructions until it was in a monotone release though.
23
24 >> The real issue here is that there is a mismatch between ikiwiki's conflict model and
25 >> monotone's.  I need to get code into monotone to add conflict markers - that is
26 >> the code that goes in the monotonerc.  In practice I could add this to any file I know
27 >> how to reference and I can then tell monotone about it with a command line arg.
28 >> Is there a good place for such a file?
29
30 > Having rcs_commit return a warning message when there's an unresolved conflict
31 > isn't right; that message will populate the page edit box. You might want
32 > to use the error() function here?
33
34 >> It should never reach that case, so yes, I can change that to error.
35
36 > There'an incomplete comment ending with "note, this relies on the fact that"
37
38 >> erg... sorry, will fix.
39
40 [[tag patch]]