====== 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~~