question about history of bzr

John Arbash Meinel john at arbash-meinel.com
Thu Jul 13 18:19:36 BST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Alexander Belchenko wrote:
> I have a little question about history of bzr and relation to Bazaar
> 1.0. Does bzr have any common things with Bazaar 1.0?
> 
> I was start to look at bzr at the spring of 2005. I read some blog
> articles but never realized what the liaison between those two projects.
> 
> Can someone tell me short history about this, please?
> 
> -- 
> Alexander

Bazaar 1.x was a fork of Gnu Arch (as it tla), trying to make it a
little bit easier to use. Gnu Arch was a semi-distributed SCM, which had
some good ideas, and some bad ones.
I say semi distributed because it wasn't like darcs/bzr/hg/etc where
each directory is a separate repository, it had a separate repository
(called an archive) where everything was committed, but it was possible
to go branch between archives while preserving enough information to
allow future merging. It was patch focused (so every commit was a delta
against the previous commit, not a snapshot like bzr).

Robert Collins was probably the leader of the Bazaar-1.x fork.

Anyway, Canonical was trying to get bazaar-1.x to support what it
needed, and they came across some summaries that Martin had written,
about the current SCMs. They liked what he had to say, and wanted him to
start prototyping a new 'best-of-breed' SCM that could take what had
been learned by all the projects.

Originally, I believe the idea was that bazaar-ng would evolve into a
really nice python prototype, and when concepts had matured enough the
bazaar-1.x C codebase would incorporate them.
So eventually bazaar-1.x and bazaar-ng would actually converge to
supporting the same branches, etc. At that point probably bazaar-1.x
would actually become 2.0, and ng may or may not survive as a place for
 prototyping.

I'm not sure when the switchover came, but I think it was less than a
year ago. When people realized that bazaar-ng was better enough that it
wasn't worth trying to converge the two projects. Instead, you could
upgrade bazaar-1.x to bazaar-ng, and go from there.

The things bzr inherited from bazaar/Gnu Arch:

1) file-ids, let us do a lot of really nice things like merge across
renames. (In Arch you could actually apply a patch without having all of
the ancestry, and it would find the right file. bzr technically supports
that, but we never apply patches)

2) Dumb remote filesystem support. We can push to ftp/sftp/etc because
the developers had come from Arch which had it, and wanted to keep that
ability. Especially being able to pull from a plain HTTP location.

3) Developers. Aaron Bentley, Robert Collins, and myself all worked with
the Bazaar/Gnu Arch code bases. Martin had used Gnu Arch, but I don't
believe he ever hacked on it.

4) I'm sure there are more, but concepts have been plucked from lots of
locations. (Like all the merge code descends from BazIng, which was a
prototype that Aaron was working on, before bzr really got going)

Feel free to ask for more clarification. I've been around for a lot of
it, but certainly not everything.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEtoCoJdeBCYSNAAMRAvV/AKCjJ0YuZQwoODHHuadVyM80fXGDKwCfa3m0
Jkl04OaSe+V0MA9TEht4TgQ=
=tUOw
-----END PGP SIGNATURE-----




More information about the bazaar mailing list