DOCS Bundle format 4 aka 1.0alpha
Aaron Bentley
aaron.bentley at utoronto.ca
Fri Jun 22 12:45:59 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Martin Pool wrote:
> I think you could add an overall summary of how things fit together.
> If I understand correctly that is:
>
> a merge directive contains:
> * a merge command
> * an overview diff (optionally?)
> * a base-64-encoded bzipped bundle
(which is also optional. A directive can point at a branch instead of
providing a bundle.) Actually, my current plan is that the bzipping is
part of all bundles, but the base64 encoding is from the merge directive.
> which is a
> * container file which contains a series of records, each with a
> storage type and name, and containing some headers
I have actually updated it so that the headers are in their own record,
and the body is in the next record. Why write my own code for splitting
headers and bodies when I can just use what the container format provides?
> * one info record
> * file records
> * inventory records
> * revision records
> * signature records
>
> It sounded on irc like you decided not to store the testaments?
I'm certainly leaning that way.
>> format for their repository. Steps have been taken to ensure a faithful
>> conversion when serialization formats are mismatched.
>
> I think current inventory and revision records have their own version
> marker at the start. You could check that when inserting them and we
> should make sure we continue with that in the future.
You mean the fulltexts? They do, but since I'm transmitting deltas,
they may not appear.
I was planning on describing the XML serializer in the info record.
>> :record_kind: The storage strategy of the record. May be "fulltext" (the
>> record body contains the full text of the value), "mpdiff" (the
>> record body
>> contains a multi-parent diff of the value), or "header" (the
>> record body is
>> empty).
>> :parents: Used in fulltext and mpdiff records. The revisions that
>> should be
>> noted as parents of this revision in the repository. For mpdiffs,
>> this is
>> also the list of build-parents.
>> :sha1: Used in mpdiff records. The sha-1 hash of the full-text value.
>
> These headers seem somewhat redundant with the container names, except
> that the latter can be indexed and are required to be unique.
They don't seem like the kind of thing you would want to index. Also, I
didn't want to work out an involved encoding scheme, and Bencode lets me
use a useful range of value types.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGe7Z30F+nu1YWqI0RAh4eAJ9aHZuY7hZv0dm09DHaj7lMGGaq8wCfUe3J
FEdt1qMm7udMLB6QThhn17M=
=EMx8
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list