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.

falls under the first category : it is frequently updated on 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 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

Dokuwiki and Arctic, which are respectively the wiki engine and the theme I use for this website, fall under the second category : they are managed by darcs, which is a very nice vcs, but suffers from two drawbacks (at least for me)

  1. it’s not my tool of choice, I prefer bzr
  2. 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 (here and there), I explained how do deal with darcs with the aid of sshfs, but it is unbearably slow. Deploying bzr on the server is much easier since it is written in Python.

When it comes to converting a repository from one vcs to another one, 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 :)