[MERGE 0.92] move responsibility for storing entries to CommitBuilder

Robert Collins robertc at robertcollins.net
Thu Sep 6 00:24:10 BST 2007


This patch:
 - moves the responsibility for storing entries to CommitBuilder. So
different repositories can store symlinks/files etc differently without
double-indirection though the inventory entry.
 - Updating the inventory is done at the same place (though perhaps it
should be a method to copy the relevant fields across).
 - There is a new single-roundtrip call to the tree to get all the
cheaply available data about the path, which then feeds directly into
the logic for when to commit or not.
 - Incorporates the previously submitted versioned file change to allow
delegating final 'store or not' to the versioned file, avoiding some
double-handling cases.
 - Moves the awareness of recursive commit-or-not to the builder in
preparation for having the builder trigger the recursive commit (which
it needs to to be able to decide if the tree reference is up to date or
not)
 - deletes a bunch of stub methods that existed because of the
double-indirection via inventory.
 - separates out the kind-agnostic and kind-specific checks more
clearly.

Caveats:
 - I'm not sure if path_content_summary should exist, or if its entirely
correct for windows at the moment, and it doesn't currently offer the
hash-cache optimisation ever, so this is not suitable for inclusion in a
release.
 - The big benefit of an iteration based approach is probably avoiding
repeated data lookups in the inventory/dirstate, so where i plan to go
with this is to have the path content summary tuple passed into
record_entry_contents, which should make it work rather well IMO and fit
nicely.

That said, this is a reasonable chunk of work, and I'd like to keep the
delta on the branch I'm working on down, so... I'm submitting it for a
merge as soon as 0.92 opens with the plan of getting it reviewed and
tweaking it as needed to be ready on tuesday.

-Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bzr-mail-0xZ1sd.patch
Type: text/x-patch
Size: 62800 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070906/8a1614a8/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070906/8a1614a8/attachment-0001.pgp 


More information about the bazaar mailing list