[MERGE] Solve reconciling erroring when multiple portions of a single delta chain are being reinserted.

Robert Collins robertc at robertcollins.net
Mon Dec 3 06:18:34 GMT 2007


This fixes a bug in reconcile for packs.

This big comment explains it:
# We have to topologically insert all texts otherwise we can fail to
# reconcile when parts of a single delta chain are preserved intact,
# and other parts are not. E.g. Discarded->d1->d2->d3. d1 will be
# reinserted, and if d3 has incorrect parents it will also be
# reinserted. If we insert d3 first, d2 is present (as it was bulk
# copied), so we will try to delta, but d2 is not currently able to be
# extracted because it's basis d1 is not present. Topologically sorting
# addresses this. The following generates a sort for all the texts that
# are being inserted without having to reference the entire text key
# space (we only topo sort the revisions, which is smaller).

However its damn tricky to get a good test for this together, and I've
actually given up doing so. (I tried before I wrote the code).

This code is executed by the test suite, but reverting the patch won't
make tests fail :(.

-Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bzr-mail-LEF81G.patch
Type: text/x-patch
Size: 7145 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20071203/f65b50fa/attachment.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/20071203/f65b50fa/attachment.pgp 


More information about the bazaar mailing list