How do we fix 288751?

Aaron Bentley aaron at aaronbentley.com
Tue Nov 11 18:56:52 GMT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm trying to fix 288751.  280595 has the same root cause.

When we autopack, we fail if there are external compression references.
  This is in accord with doc/developers/overview.txt, which states:
"Compression deltas don't span physical repository boundaries"

But stacking seems to create branches where there are external
compression references.  I have an example here, but it is confidential
code.  I do not know the mechanism yet, but it's probably either commit
or fetch.

It appears you added code to support this in revision
robertc at robertcollins.net-20080623001926-8vos9qr0xgbm74wu.  The commit
message is "get_record_stream stacking for delta access."
knit.py:1151

        if include_delta_closure:
            needed_from_fallback = set()
            # Build up reconstructable_keys dict.  key:True in this dict
means
            # the key can be reconstructed.
            reconstructable_keys = {}
            for key in keys:
                # the delta chain
                try:
                    chain = [key, positions[key][2]]
                except KeyError:
                    needed_from_fallback.add(key)
                    continue
^^^ right here, the KeyError handling is explicitly queueing the
compression parent to be retrieved from a fallback VersionedFiles, ie
fallback repository.

So what do we do about this?
- - Bless the current behavior?
- - Bless the current behavior and teach autopack to fetch external
compression parents?
- - Forbid the current behavior and teach reconcile to fetch external
compression parents?
- - Something else?

Aaron


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkZ1XQACgkQ0F+nu1YWqI3ujACfXyapdMrVkKGVkhkGF5OZTpIf
gukAn1DwxO1Rca4w4joBXa0D5AF5VHnH
=Aet9
-----END PGP SIGNATURE-----



More information about the bazaar mailing list