2007-10-07

bzr - the light version control system

I have many personal tiny projects and sometimes I need to synchronize all files and documents between laptop and my workstation (and sometimes one extra workstation). I used pendrive as common drive for all kind of that stuff. Sometimes I forget pendrive so I worked on local filesystem. As result sometimes I had semiautomatic synchronizations nightmare- sync all local directories with pendrive as central storage drive. It was the last moment to change it.

Most time I'm online so I thought about network accesible repository for my projects. In my professional work I use repositories like CVS, SVN, and Perforce. Version control system is good solution but I wanted to avoid burden of instalation and hosting of such services. Rsync is good and simple solution too, but I started thinking about something like light, open source VCS.

So I have tried Bazaar (bzr). It is real VCS and meets my all demands. And it has one big positive- it doesn't need server instalation so I can use various protocols like ftp on repository host. There are examples of using bzr only with http protocol to checkout project (no writing and creating projects in repository of course).

So I tried to setup repository over sftp. New version of bzr is written in Python, but I had presintalled Python environment already. I installed bzr package, and paramiko needed for sftp connections handling. I have run bzr on windows and linux - there is no major differences. It's good to read the installation requirements if you are not using standalone instalation packages.

I wrote some automatization scripts to update my projects before work and commiting changes after. It works pretty well. There is one negative- all bzr users point that bzr over sftp works very slow. I can confirm that even on small size projects it takes even 20 minutes to checkout all files. But bzr team is still working on it and communication optimization is one of their priorities.

No comments: