2007/01/15

bazaar, Mercurial, darcs

Update 16/01:
  • bazaar: merge problem solved, see the next post.
  • Mercurial: found a way to query changes.
_____________________________________________

I played with Mercurial and darcs on the weekend. Environment: win32, python 2.5, console + sh from MSYS.

My observations:


darcs

Pros:
  • I really liked the interactive style of workflow.
  • It gave me enough informations about what I needed.
  • Merging was easy.
  • I's really cool.
Cons:
  • They were too creative during the command naming. Almost totally new command set is not a deal breaker, but uncool.
  • I's strange that the latest available windows binary is not the latest stable version. However It is possible to download the latest binary from an external site.
  • Hard to extend.
What makes it totally unusable for me: WindowsConsoles

During the evaluation I got several error messages complaining about my console being out of sync.
I will try to overcome on this somehow. Maybe disabling the interactive features makes it possible to use it, or just use the cmd.exe.


Mercurial

It is similar to bazaar.

Pros:
  • More fine grained control than in bazaar (pull/update/merge are separate steps).
  • Merge is more easy than in bazaar (easy to configure external diffs).
  • Written in python, easy to extend.
Cons:
  • Installation from the sources is working well, but the windows binary installer is trying to install the msvcrt71.dll into the windows/system32. This is totally unacceptable.

What makes it totally unusable for me: I weren't able to query file status changes between two branches. If I would like to see what changes I have made, I have to query the changes from the upstream's repository and specify my working branch in a parameter. It's logical but not practical.


bazaar

Pros:
  • Written in python, easy to extend.
  • Provides every information what I need. Easy to query changes between branches.
  • Easy to install, working well with my my console.
Cons:
  • Merging is not too user friendly. On conflict it just put the 3 versions to the filesystem, and you have to do the merging manually. (darcs and mercurial provides nice way to define a merge tool)

0 comments: