web commit by http://jeremie.koenig.myopenid.com/: outline a "suggested change" direc...
[ikiwiki] / doc / todo / preprocessor_directive_for_proposed_changes.mdwn
1 There are some kind of changes to the underlying repository
2 which can't be made through the web interface:
3
4   * changes to files outside the wiki, to locked pages;
5   * advanced RCS operations such as merge, move, copy or del;
6   * changes you're not confident enough to apply outright.
7
8 Of course in these cases, you can add your request to a discussion page
9 and wait for someone with the access/confidence to apply them.
10 Maybe this can be enhanced with a [[PreprocessorDirective]]:
11
12 <pre>
13 \[[suggest op=merge dstfile=trunk srcfile=branches/jk oldrev=1234 newrev=1342]]
14
15 \[[suggest op=move srcpage=/blog dstpage=/blog_support]]
16
17 \[[suggest patch="""
18 Index: IkiWiki/CGI.pm
19 ===================================================================
20 --- IkiWiki/CGI.pm      (rĂ©vision 4119)
21 +++ IkiWiki/CGI.pm      (copie de travail)
22 @@ -497,9 +497,11 @@
23 (...)
24 """]]
25 </pre>
26
27 These would expand to a description of the changes to be effected, a toggleable diff
28 of them if appropriate, and of course an "apply theses changes" button.
29 Ultimately my planned [[review_mechanism]] would manage pages with such directives
30 by itself.
31
32 I'm still uncertain about many things, so please anyone feel free to comment.
33 Specifically:
34
35   * What would an optimal syntax look like?
36   * Do I need to / should I define a new rcs_ function to handle such operations?
37   * Would it be acceptable for an ikiwiki module to use temporary file (ie. to calculate diffs)?
38   * Should the diff be calculated at page build time (which means the page should be rebuilt
39     whenever a target file changes), or should the CGI be used when someone requests it?
40   * Would it be possible to detect already applied changes (without extra state, that is),
41     and propose to "revert changes" in that case?
42
43 --[[JeremieKoenig]]