We are planning to use bazaar as a version control tool over cvs and svn. So i don't know much about it, Where can i find a tutorial of using it? and compared to svn and cvs what extra features does it provides. And is it worth using for the application with large amount of code to manage?
Our most senior developer is a big fan of version control systems and he installed Bazaar so we could try it for a while before migrating new projects to it - unfortunately, we had to stop in the middle because the Maven release plugin doesn't integrate very well with Bazaar and the plugin is more important than using Bazaar instead of Maven now.
It works pretty well, let me say that. One of the major pains that I found when working in a team are conflicting changes, and also the fact that you should not commit a change to the central repository until the change is actually ready to be committed. With Bazaar, I can commit my changes locally and then, when I am ready to do so, I can commit all those changes back to the central repository. I never loose my unresolved conflicted changes (with SVN, you have to resolve it before you can submit it).
I didn't test this, but even getting the changes back from the central repository into your local repository (with your local changes) should be easier with Bazaar. What the experts say is that, as branching/ merging is way easier to be maintained with Bazaar, you won't be afraid of it anymore.
The major difference with CVS or SVN is that Bazaar is a DVCS (Distributed Version Control System), not a VCS:
see Comparison between Centralized and Distributed Version Control Systems,
and you can see a good feature matrix in this Wikipedia entry.
Any DVCS will require a more complex workflow than a classic VCS, even if you can replicated the "central" repo model with a DVCS:
You can read tutorials and comparisons of bzr to CVS and SVN at the official Bazaar VCS site in the Documentation section, check the documentation for the latest stable release (which is bzr 2.1 as of March 2010): http://doc.bazaar.canonical.com/bzr.2.1/en/
There is:
- Tutorials
- User Guide and User Reference
Migration Guide which covers such topics as:
Also Bazaar allows you to work directly with SVN repositories using bzr-svn plugin. You can find more information on this workflow in the guide Using Bazaar on Subversion projects.
Bazaar's biggest strength over all other system is its flexibility.
For example, developers can work in either traditional centralized mode, or they can work in the newer-style, distributed mode. Oh, and they can do it simultaneously on the same repository. Oh, and they can switch back and forth as much as they like.
Bazaar also has two things which are fairly rare to version control systems: excellent documentation and available commercial support.
For me, Bazaar has the most flexibility, best documentation and in general just works. Those things are far more important to me than the fact pulling a branch would be 10 seconds faster with git for example.
Bazzar work slow on large project with huge history (bzr log on file from Emacs sources take 1 minute!).
And have inefficient http:// protocol (designed for local net connection, require ~5 MiB of traffic at least for any remote operation).