[MERGE] Integration ordering
Aaron Bentley
aaron.bentley at utoronto.ca
Tue Jun 19 04:29:53 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Robert Collins wrote:
> + * Deprecating versioned files as a supported API: This collaborates with the
> + Repository API but can probably be done by adding a replacement API for
> + places where the versioned-file api is used. We may well want to keep a
> + concept of 'a file over time' or 'inventories over time', so the existing
> + repository model of exposing versioned file objects may be ok; what we need
> + to ensure we do is remove the places in the code base where you create or
> + remove or otherwise describe manipulation of the storage by knit rather than
> + talking at the level of file ids and revision ids.
This is some nuance I hadn't heard before. Makes sense to a degree, but
whatever the preferred order for insertion is, we'll probably need
interfaces that make batch insertion easy.
> The current
> + versioned-file API would be a burden for implementors of a blob based
> + repository format, so the removal of callers, and deprecation of those parts
> + of the API should be done before creating a blob based repository format.
I think I should point out that these changes could make knit-based
repositories slower. Hopefully there won't be fallout, but we should be
aware of the possibility.
> + * _iter_changes based merging: If the current _iter_changes_ API is
> + insufficient, we should know about that before designing the disk format for
> + generating fast _iter_changes_ output.
I very much doubt that there's a mismatch here. But yes, I can work on it.
> + * Working tree disk ordering: Knowing the expected order for disk operations
> + may influence the needed use case specific APIs, so having a solid
> + understanding of what is optimal - and why - and whether it is pessimal on
> + non linux platforms is rather important.
Well, apart from the create-in-limbo-parent change, I haven't found any
particular order of operations faster than any other. And that's
without repository overhead.
> + * Be able to version files greater than memory in size: This cannot be
> + achieved until all parts of the library which deal with user files are able
> + to provide access to files larger than memory. Many strategies can be
> + considered for this - such as temporary files on disk, memory mapping etc.
> + We should have enough of a design laid out that developers of repository and
> + tree logic are able to start exposing apis, and considering requirements
> + related to them, to let this happen.
I really really hate this change. It'll make development so much harder.
> + * New container format: Its hard to tell what the right way to structure the
> + layering is. Probably having smooth layering down to the point that code
> + wants to operate on the containers directly will make this more clear.
Certainly I would like a higher-level API. At minimum, I want to store
"compression type" and "parent list" of 99% of my records.
And TBH, it wouldn't suck if names could be generated from revision-id,
file-id and a string.
> + bundles will become a read-only branch & repository, the smart server wants
> + streaming-containers, and we are planning a pack based repository, it
> + appears that we will have three different direct container users. However,
> + the bundle user may in fact be fake - because it really is a repository.
And indeed, the smart server may also wind up streaming
repositories/bundles. (Though I suppose your point was that it could
stream other data as well.)
> + * Separation of annotation cache: Making the disk changes to achieve this
> + depends on the new API being created. Bundles probably want to be
> + annotation-free, so they are a form of implementation of this and will need
> + the on-demand annotation facility.
OTOH, bundles may contain multiparent deltas, and those can be used for
annotation quite efficiently.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGd02x0F+nu1YWqI0RAlVJAJ9+5zUp0lp9cR+XHQxoFiUBXKSqfgCfdDVk
bW61+YGAxAYCNwpjikA2404=
=mRnD
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list