Bazaar-NG Development News

2005-02-20

596 bzr.py
608 bzrlib/branch.py
39 bzrlib/errors.py
25 bzrlib/__init__.py
320 bzrlib/inventory.py
126 bzrlib/osutils.py
66 bzrlib/revision.py
173 bzrlib/store.py
107 bzrlib/tests.py
62 bzrlib/trace.py
239 bzrlib/tree.py
41 bzrlib/xml.py
2402 total

We now store the SHA-1 of files, but use it only as a check that the files were stored safely. At tridge's suggestion we also keep the size, which can catch some classes of bug or data corruption:

% bzr diff
bzr: error: wrong SHA-1 for file
'680757bf-2f6e-4ef3-9fb4-1b81ba04b73f' 
in ImmutableStore('/home/mbp/work/bazaar-ng/toy/.bzr/text-store')
  inventory expects d643a377c01d3e29f3e6e05b1618eb6833992dd0
  file is actually 352586b84597ea8915ef9b1fb5c9c6c5cdd26d7b
  store is probably damaged/corrupt

2005-02-27

Revisions are now named by something based on the username and date, plus some random bytes to make it unique. This may be a reasonable tradeoff against uniqueness and readability. This same id is used by default for revision inventories:

mbp@sourcefrog.net-20050220113441-34e486671a10f75297e03986

Keeping them separate is still a good thing, because the inventory may be large and we often want only the revision and not the inventory. It is possible for the revision to point to an older inventory if it has not changed (but this is not implemented yet.)

Tridge pointed out some possible performance problems with the assumption that we can simply compare all files to check for changes.

XML has newlines to make it a bit more readable.

Nested subdirectories are now supported down to an arbitrary depth.

bzr can successfully import and reproduce itself.

ongoing