Some timings using bzr

John Arbash Meinel john at
Fri Jul 11 14:45:31 BST 2008

Hash: SHA1

David Ingamells wrote:
| Matt Nordhoff wrote:
|> David Ingamells wrote:
|> <huge snip>
|>> Further I
|>> do not know if the dirstate-tags repository format is a good choice. It
|>> was the default when the repos was made in January this year. I find the
|>> information in the manuals very uninformative regarding the benefits of
|>> the various formats that are listed in (e.g.) the reference for the
|>> upgrade command.
|  > dirstate-tags is not a good choice. pack-0.92 is the current default
| format and is much better.
|  > ...
|  > pack-0.92 is generally much, much better, though that might be
| different with NFS.
| Matt,
| thanks for your answer.
| The repository in question is a shared repos with a number of branches
| in it. It was made when bzr 0.98 (I think it was) was the latest
| released version. I used the default setting for bzr init-repo then.

Well, we've never had an 0.98, so I'm pretty sure that wasn't it :).

0.92 was our last 0.9X release, and when we released it we didn't make
- --pack-0.92 the default format, but it was a supported format. (We try
to have at least 1 release where things are available before
recommending them as the default.)

| Now, as you say, bzr 1.5 has pack-0.92 as the default. Are there any
| issues I should be aware of in doing a bzr upgrade?

It won't work with clients older than 0.92. You might want to do "bzr
upgrade; bzr reconcile". In your case, I would guess the 'reconcile'
isn't strictly necessary. If your repository was *much* older, it might
clean up a few things.

| What is the best way to update the repos? Can I update one branch and
| leave the remainder alone? Must I do the upgrade at the shared repos

With a shared repository, there *isn't* a repository for an individual
branch anymore. You could change that branch to be "standalone" or start
a new repository.

| My I request that maybe someone who knows what they are talking about
| (certainly not me!) can add/improve the relevant sections in the user
| reference manual e.g. the "Storage Formats" section (aka "bzr help
| formats"). For example dirstate-tags' description says "new" and
| "improved" - which maybe it was when the comment was written, but now
| with several newer and further-improved formats available that
| description is just confusing.
|  > As its name suggests, it requires bzr 0.92,
|  > while dirstate-tags only requires 0.15. But those are both quite old,
|  > and you should always use the latest version anyway, which you are, so
|  > it's moot.
| It says a lot about the pace of development in the bazaar project that
| you use the term "quite old" to refer to something that was the default
| only 6 months ago! You say pack-0.92 is also quite old - is there a
| newer and even better format that is likely to become the default in the
| near future - e.g. in 1.6?

1.6 or 1.7 are likely to support a better indexing layer, and possibly a
more compact delta compression. We are also introducing support for
"stacked" branches. So yes, there is a new repository format on the
horizon. I don't expect 1.6 will have it as the default, and I would be
a bit surprised if 1.7 had it as the default.

I would still recommend upgrading to --pack-0.92 if all of your expected
clients can support it. It is significantly better in almost every
aspect than the one you are using. The biggest difference that files are
"packed" together, rather than having 2 files for every versioned file.
(1 storage, 1 index).

I would be very interested to see your results after upgrading. I would
imagine that lots of files *could* impact NFS performance. But I would
want to see whether reading lots of parts of 1 file is better or worse
than reading parts of N files.

Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla -


More information about the bazaar mailing list