Thread:Project:Support desk/Wiki revisions history -- SVN/Git/Hg?/reply (7)

I managed to do exactly what I want. To be honest, I thought that mirroring a wiki into a Git repository is the most advanced thing I could ever want for such a scenario, but this following method even allows to push wiki changes back to the wiki. It's all built around a Git built-in concept of remote helpers that can be treated as a sort of bridges between heterogenous systems. Nevertheless, I don't know how to fetch talk pages and categories, but I hope it won't be an issue in the future. So I came across this page and noticed a very similar thing. Here is the manual describing this remote helper also saying that it's a Git built-in. True, this extension is a part of the Git source code repository at Github. Since I couldn't manage to make it work under Cygwin, I had to install a virtual machine with Linux Mint (just a tiny personal preference) where all of necessary operations might be easier. And yes, this here are the commands that work for me:

$ sudo apt-get install libmediawiki-api-perl $ sudo apt-get install libdatetime-format-iso8601-perl $ sudo apt-get install git $ sudo apt-get install git-mediawiki $ git clone mediawiki::http://localhost:8080/wiki $ cd wiki

The current known to me, after a short test, issues are:
 * 1) I have no idea how to fetch categories and the talk pages (didn't check templates, though)
 * 2) If you just commit, your local changes are signed with your Git identity information, but once you push back to the wiki, the changes are recorded by anonymous user. This seems to work well if you configure the MediaWiki remote helper.
 * 3) Didn't check what happens if you push changes to protected pages.
 * 4) Files seem to be not cloned/pulled as well, unfortunately.

I hope to find how to deal with those issues, but I'm not sure :)