====== Mirroring some opensource projects ======
Sometimes, it is real pain to stay synchronized with some projects you're using and/or modifying. Just because they do not provide revisions, or because they do, but with a tool you can't/don't want to use.
[[EmacsWiki>Icicles]] falls under the first category : it is frequently updated on [[EmacsWiki>SiteMap|EmacsWiki]], but downloading the project is quite inconvenient (you need to use a script, avoid wiki download limits, you don't have easy revisions, and so on). Therefore, I have setup a [[http://bazaar-vcs.org/|bzr]] repository that mirrors daily changes to a file in this project. It's far from being perfect of course, since the granularity of the commits is quite arbitrary, but I find it easier anyway. You can get //via//
bzr branch http://archives.hodique.info/bzr/icicles
[[doku>start|Dokuwiki]] and [[http://www.chimeric.de/projects/dokuwiki/template/arctic|Arctic]], which are respectively the wiki engine and the theme I use for this website, fall under the second category : they are managed by [[http://www.darcs.net/DarcsWiki|darcs]], which is a very nice vcs, but suffers from two drawbacks (at least for me)
- it's not my tool of choice, I prefer [[http://bazaar-vcs.org/|bzr]]...
- this site is hosted, and I'd like to easily record the patches I introduce in these softwares
The second point is the most important, of course :)
In previous posts ([[:blog:2006:2409_upgrading_dokuwiki|here]] and [[:blog:2006:2709_upgrading_dokuwiki_round_2|there]]), I explained how do deal with [[http://www.darcs.net/DarcsWiki|darcs]] with the aid of [[http://fuse.sourceforge.net/sshfs.html|sshfs]], but it is unbearably slow. Deploying [[http://bazaar-vcs.org/|bzr]] on the server is much easier since it is written in [[http://python.org|Python]].
When it comes to converting a repository from one vcs to another one, [[http://progetti.arstecnica.it/tailor|Tailor]] is the right tool to use. I won't say the migration and synchronization were without trouble, it would be a lie, but the result is very satisfying, once everything is properly setup.
For the record, here is the configuration file I use for tailoring those two projects :
[DEFAULT]
verbose = True
debug = True
encoding = utf8
encoding-errors-policy = ignore
projects = dokuwiki arctic
[dokuwiki]
root-directory = ~yann/Projects/tailor/dokuwiki
source = darcs:dokuwiki
target = bzr:dokuwiki
state-file = dokuwiki.state
start-revision = 2007-03-01
[bzr:dokuwiki]
repository = ~yann/Projects/bzr/dokuwiki.d/dokuwiki.darcs
[darcs:dokuwiki]
repository = ~yann/Projects/darcs/dokuwiki
[arctic]
root-directory = ~yann/Projects/tailor/arctic
source = darcs:arctic
target = bzr:arctic
state-file = arctic.state
[bzr:arctic]
repository = ~yann/Projects/bzr/arctic.d/arctic.darcs
[darcs:arctic]
repository = ~yann/Projects/darcs/arctic
After running tailor, all I have to do is to ''push'' the repositories to their public place. You can get them //via//
bzr branch http://archives.hodique.info/bzr/dokuwiki/dokuwiki.darcs
bzr branch http://archives.hodique.info/bzr/arctic/arctic.darcs
Other branches will be created eventually, to reflect my personal modifications. They are intended for personal use, but feel free to have a look. After all, it's all free software :)
{{tag>dokuwiki darcs bzr vcs}}
~~DISCUSSION~~