[MERGE] Branch format 6
Aaron Bentley
aaron.bentley at utoronto.ca
Sun Feb 11 21:18:28 GMT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all,
This patch introduces format 6
Format
######
Format 6 differs from the current format 5 in two ways:
1. It stores only the last revision, not the entire revision history
2. It stores all policy data in the branch config file
- parent location
- bound location
- push location
This format is compatible with knit (and possibly metaweave) format
repositories, but it is not compatible with old clients.
Performance
###########
Because they don't store revision history, format 6 branches are much
smaller than format 5 branches. bzr.dev's branch shrinks from 144k to
20K on ext3 (space used, not apparent size).
It is currently slower than format 5 for at least some operations. It
could potentially outperform format 5, but more optimization is required
to meet that potential.
Features
########
Format 6 introduces two features that require a new branch format.
Strict history
==============
When a branch has a strict history policy, you can only append to it;
you cannot change the previous history. This keeps revnos stable and
maintains a consistent view of history. Strict history can be enabled
by setting "strict_history=True" in .bzr/branch/branch.conf
Rebind
======
When a branch is unbound, the "bound" config value is set to "False",
instead of clearing the "bound_location" value. If "bind" is issued
with no arguments, the previous bound location is used.
This is consistent with merge, pull, push, etc, which all remember
previously-used locations.
It means that if you have a heavyweight checkout but no access to the
master branch, you can "unbind", do a series of commits (without
- --local) and finally bind when the branch becomes available again.
Defaults
########
I propose retaining "knit" as the default repository format, because of
performance issues, and to avoid watersheds.
I do believe that the disk format is unlikely to change, and getting it
merged now will mean it will be broadly supported when it becomes the
default.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFz4gk0F+nu1YWqI0RAgsIAJ9ZdV+KOUfovX0ON7gd6TjAopxLMwCePwnJ
v+bWXSWEjGyMC8cq3j+46ks=
=gIEH
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: branch6.patch
Type: text/x-patch
Size: 62241 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070211/370888d4/attachment-0001.bin
More information about the bazaar
mailing list