Selasa, 06 Oktober 2009

Moving from bzr to git

As with a lot of coders out there, I've moved on from no source control, to CVS, to Subversion, and recently to one of the distributed ones. In fact, I tried both Bazaar and git roughly at the same time a couple of years back and have been quite comfortably using both to manage my projects.

Last week though, I've migrated all but one of my projects to git. The only bzr repository left is the one for $work where I want to avoid retraining people to use git since they are not coders.

I had no real complaints with bzr. Sure, it's generally slower than git, the repository size is slightly larger than git's, and branching is a bit more cumbersome than in git, but all of those have never bothered me enough to part with bzr.

The clincher, however, came when I needed to write some post-commit hook to post my commit messages to an internal web-based bulletin board. In bzr you need to write a plugin written in Python. Not that there's anything wrong with it, but I don't think I even want a Perl-based SCM where I need to write a Perl plugin for everything when a two-line shell script will do. Add to that fact that bzr doesn't provide a template/skeleton for the plugin and I have to spend a few minutes to google around the plugin API (in addition to refreshing my memory on Python syntax), etc.

I think I'm much more comfortable with git nowadays.

3 komentar:

  1. I suppose Python is more cross-platform, but myself I prefer the Unix philosophy. Maybe someone should write an "adopt shell script" bzr plugin. :)

    BalasHapus
  2. There is one :-) http://people.samba.org/bzr/jelmer/bzr-shell-hooks/trunk

    Allows you to specify hooks as shell scripts, like in git.

    BalasHapus
  3. feedback:

    Try mercurial, Steve. It's python, fast, more cross platform than git, it's still DVCS like git. Anyway, some ruby communities out there built amp as an answer to this whole DVCS world, I haven't allocated my time to get its taste, so you probably might want to give it a try too.

    question:

    After tasting svn, git, mercurial. I haven't really grasped on the thing that if I'm asked to make a comparison listing which to choose for which contexts of scenarios. I'm just wondering if you got anything to share probably from each algorithm perspective ?

    BalasHapus