2011/2/6 Maximilian Albert <maximilian.albert@...1439...>:
Hi all,
even though my work on Inkscape has been very limited since we switched version control systems, I must say that the few times I had to work with bzr weren't the most fun of experiences either, to say the least. I admit that I am a heavy git user and that therefore I am cetrainly biased in my view, but even with my few commits to the Inkscape trunk I have seen most of the problems other people mentioned (most notably, slowness, broken repositories after trying a pull or merge, and just generally bzr often getting in the way of what I tried to do or it being unintuitive).
I don't have any strong opinions on the VCS problem, because I could do everything I wanted with both SVN and Bazaar, and in all probability I could also do it with Git, but with my limited Git knowledge I can point out a few design choices that make very little sense and alienate newbies even further. (Probably some of them could be solved with plugins.)
1. No sequential revision numbers. Given commits 09fa34b3 and 23e9f1a0 I can't tell which one is earlier. IIt appears the only reason this was done is to be different from CVS, which Linus hates. 2. Autocommit of clean merges. (This can be turned off by a parameter, but why the default is almost malicious?) 3. git add and the staging area. This encourages committing something which you did not compile and test. Using bzr shelve / git stash is way better. 4. Several important manpages are nearly impossible to understand if you don't already know what the command does. Example: the summary of "git push" is "Update remote refs along with associated objects". That makes no sense to me if I don't know what "objects" and "refs" mean in Git. By contrast, I was able to learn most of Bazaar via reading manpages and a few Google searches. 5. Poor support for checkout-update-commit workflow as seen in SVN. Instead of checkout-update-commit, you have clone-pull-commit-push.
With regards to Bazaar slowness, it looks like people are only experiencing this because they're trying to use Bazaar in the Git way: by creating a new branch for every minor feature or bugfix. Bazaar will be slow when used this way, because Bazaar creates a working tree for every branch by default, whereas Git has 1 working tree per repository. A simple checkout is enough in this case. You can work Git-style using lightweight checkouts and no working tree repositories, or use the colo plugin that provides some convenience commands. http://doc.bazaar.canonical.com/plugins/en/colo-plugin.html
Regards, Krzysztof