git-commit-vandalism/Documentation/technical
Ben Peart 3b1d9e045e eoie: add End of Index Entry (EOIE) extension
The End of Index Entry (EOIE) is used to locate the end of the variable
length index entries and the beginning of the extensions. Code can take
advantage of this to quickly locate the index extensions without having
to parse through all of the index entries.

The EOIE extension is always written out to the index file including to
the shared index when using the split index feature. Because it is always
written out, the SHA checksums in t/t1700-split-index.sh were updated
to reflect its inclusion.

It is written as an optional extension to ensure compatibility with other
git implementations that do not yet support it.  It is always written out
to ensure it is available as often as possible to speed up index operations.

Because it must be able to be loaded before the variable length cache
entries and other index extensions, this extension must be written last.
The signature for this extension is { 'E', 'O', 'I', 'E' }.

The extension consists of:

- 32-bit offset to the end of the index entries

- 160-bit SHA-1 over the extension types and their sizes (but not
their contents).  E.g. if we have "TREE" extension that is N-bytes
long, "REUC" extension that is M-bytes long, followed by "EOIE",
then the hash would be:

SHA-1("TREE" + <binary representation of N> +
    "REUC" + <binary representation of M>)

Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-10-11 15:32:48 +09:00
..
.gitignore
api-allocation-growing.txt
api-argv-array.txt api-argv-array.txt: remove broken link to string-list API 2017-10-06 21:16:03 +09:00
api-config.txt doc: fix config API documentation about config_with_options 2018-05-11 10:26:33 +09:00
api-credentials.txt
api-diff.txt
api-directory-listing.txt Documentation: spelling and grammar fixes 2018-06-22 14:26:23 -07:00
api-error-handling.txt
api-gitattributes.txt Documentation: spelling and grammar fixes 2018-06-22 14:26:23 -07:00
api-grep.txt
api-history-graph.txt
api-index-skel.txt
api-index.sh
api-merge.txt
api-object-access.txt sha1_file.c: rename to use dash in file name 2018-04-11 18:11:00 +09:00
api-oid-array.txt get_short_oid: sort ambiguous objects by type, then SHA-1 2018-05-11 14:43:23 +09:00
api-parse-options.txt timestamp_t: a new data type for timestamps 2017-04-27 13:07:39 +09:00
api-quote.txt
api-ref-iteration.txt refs: remove dead for_each_*_submodule() 2017-08-24 14:56:28 -07:00
api-remote.txt
api-revision-walking.txt
api-run-command.txt
api-setup.txt pathspec: remove the deprecated get_pathspec function 2017-01-08 18:04:17 -08:00
api-sigchain.txt
api-submodule-config.txt Merge branch 'sb/submodule-move-nested' 2018-05-08 15:59:17 +09:00
api-trace.txt
api-tree-walking.txt tree-walk: convert fill_tree_descriptor() to object_id 2017-08-14 12:38:54 -07:00
api-xdiff-interface.txt
bitmap-format.txt
commit-graph-format.txt Merge branch 'ds/commit-graph' 2018-07-18 12:20:34 -07:00
commit-graph.txt commit-graph: update design document 2018-06-27 10:29:11 -07:00
directory-rename-detection.txt git-rebase.txt: document behavioral differences between modes 2018-06-27 11:23:22 -07:00
hash-function-transition.txt doc hash-function-transition: pick SHA-256 as NewHash 2018-08-07 07:40:43 -07:00
http-protocol.txt doc: fix want-capability separator 2018-07-30 11:25:20 -07:00
index-format.txt eoie: add End of Index Entry (EOIE) extension 2018-10-11 15:32:48 +09:00
long-running-process-protocol.txt Docs: split out long-running subprocess handshake 2018-01-25 11:24:32 -08:00
multi-pack-index.txt multi-pack-index: add design document 2018-07-12 13:55:02 -07:00
pack-format.txt midx: write object offsets 2018-07-20 11:27:28 -07:00
pack-heuristics.txt
pack-protocol.txt Merge branch 'bw/protocol-v2' 2018-08-15 15:08:21 -07:00
partial-clone.txt partial-clone: render design doc using asciidoc 2018-08-15 09:22:54 -07:00
protocol-capabilities.txt upload-pack: add object filtering for partial clone 2017-12-08 09:58:51 -08:00
protocol-common.txt
protocol-v2.txt Merge branch 'jt/connectivity-check-after-unshallow' 2018-07-24 14:50:44 -07:00
racy-git.txt
repository-version.txt extension.partialclone: introduce partial clone extension 2017-12-05 09:46:05 -08:00
rerere.txt rerere: mention caveat about unmatched conflict markers 2018-08-29 08:54:11 -07:00
send-pack-pipeline.txt
shallow.txt technical/shallow: describe why shallow cannot use replace refs 2018-04-30 11:12:31 +09:00
signature-format.txt
trivial-merge.txt treewide: correct several "up-to-date" to "up to date" 2017-08-23 12:17:22 -07:00