2011/2/4 <J.B.C.Engelen@...1578...>:
(I have become to hate bzr with quite some passion, so my arguments may be biased.)
95% of your complaints are related to TortoiseBZR rather than Bazaar itself.
The GUI situation is not perfect in Bazaar. For now I think it's better to learn to use it from the command line - I've never had problems this way. The CLI is much easier to understand than Git, and in some respects even easier than SVN (for example, no possibility of mixed-revision tree, which never made any sense for me).
You can also check out QBzr; it's not an Explorer extension like Tortoise projects, but it gives you GUI dialogs for most operations. There is a Windows installer here: http://wiki.bazaar.canonical.com/QBzr
- Resolving conflicts is something I do not understand in bzr. (e.g.
just now I've been doing all kinds of tricks to get my tree 'correct' again)
When you have a conflict in file.cpp, 3 files get created: file.cpp.BASE, file.cpp.OTHER, and file.cpp.THIS. file.cpp contains the usual >>>> marks known from SVN. file.cpp.BASE contains the revision of the file at which the versions of file.cpp here and in the merge source diverged. file.cpp.OTHER contains the merge source's version of the file. file.cpp.THIS contains the version of the file from this working tree (merge target). You can fix the conflict by overwriting file.cpp with one of thr above, or editing file.cpp to fix it manually. Once you are done, you need to say "bzr resolve file.cpp" or, equivalently, delete all 3 files listed above (those ending in .BASE, .OTHER and .THIS). The last step is different than in SVN, so it might have been causing you some problems. You can also fix all conflicts at once and then say "bzr resolve --all", which saves you some typing. I think
- I no longer dare to use the bzr update dialog, which also does not
provide functionality to keep up-to-date about the source code, like TortoiseSVN does: click button "Show log..." and it only shows the log entries of changes since last update.
Use "bzr log -l N" where N is the number of latest revisions you want to see.
On POSIX systems you can just say "bzr log -l 100 | less" to scroll through the changelog of 100 most recent revisions. I don't know whether Windows has a pager similar to GNU less.
- when an operation fails halfway, 50% chance of the tree being damaged,
and completely new checkout needed, which takes a long time and can again fail halfway...
I didn't encounter any operations failing halfway, and I never ended up with a broken tree. A few times I had to interrupt a long running command and ended up with a lock on the remote branch, but it was easily solved with "bzr break-lock" (the CLI suggested this command in an error message). I guess it might be TortoiseBZR's fault too.
For me, a versioning system without a UI is unusable for a big project like Inkscape. (say you want to revert/add/... some files, but not all, but they are spread around the tree a little bit. You'd have to type all those path/filename in the commandline, and of course you are going to forget some files since you have no overview whatsoever. With a UI, simply click some checkboxes)
As far as I understand, you can use QBzr to pick files you want to commit / revert / add using a GUI. Since it's not an Explorer extension, it should be much faster than Tortoise.
And to repeat, I really am willing to pay money to go back to SVN.
I am willing to pay 2x more than you to stay with Bazaar, because - for example - I would not be able to maintain the Cairo rendering branch using SVN. It would just take too much time due to SVN slowness. By the way, I'm not dismissing your complaints - I just think that resolving them is going to be much more productive in the long run than going back to a centralized VCS.
Regards, Krzysztof