Bazaar-o World
When I was growing up in Indiana, a bazaar was akin to a fancified garage sale--right in there with white elephant sales. Now, of course, having been a part of this community for almost a decade, whenever I hear "bazaar," the counter-image of a huge gothic cathedral immediately pops into my head.
Gee, thanks, Eric Raymond. :)
Of course, after today, another meaning will be attached to this beguiling word, thanks to the auspices of Mark Shuttleworth and his band of coders over at Canonical.
Early this morning (because according to the Laws of Business, thou shalt always announce new stuff at 12:01 a.m.), Canonical officially announced the release of Bazaar 1.0, a built-from-scratch version control system (VCS) that Canonical built for its own projects and is now releasing to the community-at-large. What will make this new system different is the fact that it's a distributed VCS.
The use of the word "distributed" was a bit confusing to me. After all, I knew that developers all over the world user VCS apps like Subversion and git to develop free software... isn't that "distributed?"
Not quite, according to Shuttleworth, with whom I spoke about the new release. He explained that while many free and open source projects have distributed developers, the VCS itself is actually centralized, usually on one main server. From such a server, code is checked out, worked on, then (hopefully) carefully merged back into the single "mainline" code. And while any authorized user can get to said code, heaven help the developers if the dedicated server is down.
Bazaar works on a pure distributed model, Shuttleworth told me. That means no dedicated, central server. All you need is to run the software on any given web server machine and allow FTP access to that server. The method of checking out and merging code is more intuitive in Bazaar; active development can be happening at multiple places in the code, and there can be multiple "lines" of code development.
"It's more elegant," he said, "and more cleaner."
This is not the first distributed VCS out there--a lot of this distributed functionality is present in the GNU Arch or TLA systems. In fact, there's some data out there on the Web that suggests that Bazaar is directly based on GNU Arch. In actuality, this is not the case.
Shuttleworth corrected me on this presumption, indicating that when the Canonical teams were first looking for a VCS like this, they did indeed turn to GNU Arch.
"The best thing at the time was Arch," he said. But, in the end, it turned out not to be the best overall. To add a bit to the confusion, this implementation of Arch was internally codenamed "Baz."
After the Arch/Baz experiment, it was decided to build a new distributed VCS from scratch. To foster better cross-platform implementation, Canonical decided to build the new VCS with the Python development language. This means that Bazaar 1.0 is compatible with Linux, OS X, and Windows--anything that's running at least Python 2.4.
Anticipating my unspoken question, Shuttleworth stated "It actually performs really well for something that's in Python." He added that he's seen the system handle anywhere from 5,000-10,000 file trees with nary a performance hit.
The Bazaar code itself is licensed under the GPL, and also has extensibility through the Python API. According to a press release from the company, there are already 20 additional plug-ins ready to go for Bazaar.
That same press release mentioned some 50 known open source projects using a pre-release version of Bazaar. Shuttleworth said he's been surprised by the uptake of the VCS. Not too long ago, the Bazaar developers got a question from a project team inside British Telecom, who indicated to the Bazaar folks that they loved working with the system thus far.
If you want to check it out for yourself, head on over to the Bazaar download page and see if it's something you can use.



I was going to post a comment on why not use git since it sounds exactly like git but I read a few threads, "git vs bazaar" will get you a bunch, and came up with this:
http://bazaar-vcs.org/RcsComparisons?action=diff&rev2=82&rev1=76
There really isn't much in the way of Bazaar that git doesn't do already. Plus some of the points seem cloudy like git not supporting "repositories" and "checkouts."
seems to just be another redo of an already created VCS :(
Well, when BZR-development started, git weren't really a mature tool. They got off almost at the same time, and on different tracks.
The two have slightly different goals and approaches.
* Git: Quite open-ended from start (merely a "content-addressable filesystem") and built for extreme performance.
* Bzr: Designed to be easy to learn and work with, and similar in to SVN in syntax and part of the workflow.
They also have some quite different approaches to some things, for instance the way BZR makes a branch have a 1:1-relationship to a place in the filesystem, while git puts all branches, one working copy, and the repository at a single location in the filesystem.
All in all, I'm still trying to figure which one I prefer. It's definitely easier to learn BZR, especially if you already know SVN (and for me, still easier to work with as well), but there's a charm to always see your commands in git execute in the blink of an eye.
Thank you for the explaination. I didn't think to look up actual project start dates. I'll agree that git is not easy in any fashion to learn.
It's along the lines of VI where you get *beep* *beep* *beep*...... "Where did my file go?!"
However after you learn, it is a powerful tool.
I'll look in to Bzr a bit and see what it's all about.
"more cleaner"? I hope that's just a small error and the SABD of my desktop OS knows better grammar. :)