This patch series describes the structure of the object list cache on-disk format. It is built successively from a very simple design - just an object list - to a version that allows for as many rev-list operations to be accelerated as possible, and potentially immediate startup of full clone operations in the common case; ie skipping the "Counting Objects" and "Compressing Objects" phase once a matching index is found. The plan will be to implement each step incrementally, with a test-*.c file along the way which tests the API provided by the revision cache API. While the revision cache format will change along the way, this will not require an index format deprecation cycle, as integration with the rest of git will not happen until the format is settled. The plan is to aim for one of these API milestones completed per week. When complete, each commit will contain tests for the level of cache that it delivers. Later milestones include joining the dots - integrating with the 'rev-list' machinery and most importantly, 'pack-objects'. Errata: the 'object list' and 'contents hash' will probably be re-worked to keep a separate SHA-1 and topological index list, to re-use existing fan-out code. This will be incorporated into the next version. Sam Vilain (7): revision-cache: define revision cache as simple list of revisions rev-cache: add on-disk format for fast reachability lookup rev-cache: add 'end' objects for caching 'uninteresting' lookups rev-cache: allow multiple 'start' objects per index revision cache: maps of 'new' objects revision cache: allow foreign 'start' commits revision cache: be even stricter with sort order Documentation/technical/revision-cache.txt | 416 ++++++++++++++++++++++++++++ 1 files changed, 416 insertions(+), 0 deletions(-) create mode 100644 Documentation/technical/revision-cache.txt -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html