X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/e65ce4f0937eaf622846c02a9d39fa7aebe4af12..faf94b578729387f85af2b2b248959debe2fa4b8:/doc/todo/web_reversion.mdwn diff --git a/doc/todo/web_reversion.mdwn b/doc/todo/web_reversion.mdwn index 92052eb26..784b72e05 100644 --- a/doc/todo/web_reversion.mdwn +++ b/doc/todo/web_reversion.mdwn @@ -45,15 +45,39 @@ Peter Gammie has done an initial implementation of the above. > structure that `rcs_recieve` does. This could be done by using `git revert > --no-commit`, and then examining the changes, and then `git reset` to drop > them. +>> We can use the existing `git_commit_info` with the patch ID - no need to touch the working directory. -- [[peteg]] > > Then the code that is currently in IkiWiki/Receive.pm, that calls > `check_canedit` and `check_canremove` to test the change, can be > straightforwardly refactored out, and used for checking reverts too. +>> Wow, that was easy. :-) -- [[peteg]] > > (The data from `rcs_preprevert` could also be used for a confirmation > prompt -- it doesn't currently include enough info for diffs, but at > least could have a list of changed files.) -> +> > Note that it's possible for a git repo to have commits that modify wiki > files in a subdir, and code files elsewhere. `rcs_preprevert` should > detect changes outside the wiki dir, and fail, like `rcs_receive` does. +>> Taken care of by refactoring `rcs_receive` in `git.pm` +>> I've tested it lightly in my single-user setup. It's a little nasty that the `attachment` plugin +>> gets used to check whether attachments are allowed -- there really should be a hook for that. +>> +>> Please look it over and tell me what else needs fixing... -- [[peteg]] + +>>> I have made my own revert branch and put a few fixes in there +>>> [[!template id=gitbranch branch=origin/revert author="[[joey]]"]] +>>> (and fixed all the indention..). Issues I noticed but have not gotten +>>> to: --[[Joey]] +>>>> Please change the git pointer above, then. I will work on your branch. -- [[peteg]] + +>>> * I quite don't understand why one caller of `git_parse_changes` +>>> needs it to chdir, and not the other one. It's running +>>> in the same git repo either way, and git doesn't need +>>> `git show` to run in a subdir at all.. +>>>> I was aping (preserving) what was already there. I don't understand what you say about `git show` - it must run under $srcdir, surely? And empirically the CGI process wasn't in the right place. By all means simplify that. -- [[peteg]] + +>>> * Probably needs to untaint the revs passed in. +>>> * Seems backwards for `rcs_preprevert` to import and +>>> use `IkiWiki::Receive`. +>>>> Indeed. This is saying that the checking code in IkiWiki::Receive is in the wrong place. I think it would be better to set up some general hooks and shuffle it into a plugin, for then other plugins that maintain special files in the repo can have a say about validity. -- [[peteg]]