git-commit-vandalism/Documentation/technical
Jonathan Nieder 35e6c47404 reftable: file format documentation
Shawn Pearce explains:

Some repositories contain a lot of references (e.g. android at 866k,
rails at 31k). The reftable format provides:

- Near constant time lookup for any single reference, even when the
  repository is cold and not in process or kernel cache.
- Near constant time verification if a SHA-1 is referred to by at least
  one reference (for allow-tip-sha1-in-want).
- Efficient lookup of an entire namespace, such as `refs/tags/`.
- Support atomic push `O(size_of_update)` operations.
- Combine reflog storage with ref storage.

This file format spec was originally written in July, 2017 by Shawn
Pearce.  Some refinements since then were made by Shawn and by Han-Wen
Nienhuys based on experiences implementing and experimenting with the
format.  (All of this was in the context of our work at Google and
Google is happy to contribute the result to the Git project.)

Imported from JGit[1]'s current version (c217d33ff,
"Documentation/technical/reftable: improve repo layout", 2020-02-04)
of Documentation/technical/reftable.md and converted to asciidoc by
running

  pandoc -t asciidoc -f markdown reftable.md >reftable.txt

using pandoc 2.2.1.  The result required the following additional
minor changes:

- removed the [TOC] directive to add a table of contents, since
  asciidoc does not support it
- replaced git-scm.com/docs links with linkgit: directives that link
  to other pages within Git's documentation

[1] https://eclipse.googlesource.com/jgit/jgit

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-06-09 13:48:17 -07:00
..
.gitignore
api-error-handling.txt
api-index-skel.txt
api-index.sh
api-merge.txt merge: move doc to ll-merge.h 2019-11-18 15:21:28 +09:00
api-parse-options.txt parse-options: make OPT_ARGUMENT() more useful 2019-03-18 11:44:14 +09:00
api-trace2.txt trace2: teach Git to log environment variables 2020-03-23 13:14:53 -07:00
bitmap-format.txt
bundle-format.txt doc: describe Git bundle format 2020-02-07 12:47:02 -08:00
commit-graph-format.txt commit-graph: write Bloom filters to commit graph file 2020-04-06 11:08:37 -07:00
commit-graph.txt Merge branch 'jk/lore-is-the-archive' 2019-12-06 15:09:23 -08:00
directory-rename-detection.txt Merge branch 'ja/dir-rename-doc-markup-fix' 2019-04-10 02:14:21 +09:00
hash-function-transition.txt Merge branch 'jk/lore-is-the-archive' 2019-12-06 15:09:23 -08:00
http-protocol.txt doc: fix want-capability separator 2018-07-30 11:25:20 -07:00
index-format.txt Documentation: fix a bunch of typos, both old and new 2019-11-07 13:42:00 +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 Merge branch 'jb/doc-multi-pack-idx-fix' 2020-01-08 12:44:12 -08:00
pack-format.txt pack-format: correct multi-pack-index description 2020-02-10 09:01:48 -08:00
pack-heuristics.txt
pack-protocol.txt Documentation: fix a bunch of typos, both old and new 2019-11-07 13:42:00 +09:00
partial-clone.txt Merge branch 'jk/lore-is-the-archive' 2019-12-06 15:09:23 -08:00
protocol-capabilities.txt protocol-capabilities.txt: document symref 2019-02-21 12:05:52 -08:00
protocol-common.txt
protocol-v2.txt Documentation: fix a bunch of typos, both old and new 2019-11-07 13:42:00 +09:00
racy-git.txt doc: replace LKML link with lore.kernel.org 2019-12-04 10:26:52 -08:00
reftable.txt reftable: file format documentation 2020-06-09 13:48:17 -07:00
repository-version.txt doc: move extensions.worktreeConfig to the right place 2018-11-16 14:10:31 +09:00
rerere.txt Documentation: fix a bunch of typos, both old and new 2019-11-07 13:42:00 +09: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