pr-539/hanwen/reftable-v10
tagged this
27 Apr 20:13
This adds the reftable library, and hooks it up as a ref backend. Includes testing support, to test: make -C t/ GIT_TEST_REFTABLE=1 Summary 18816 tests pass 2994 tests fail Some issues: * worktree support looks broken * no detection for file/dir conflicts. You can have branch {a, a/b} simultaneously. * submodules (eg. t1013) * many tests inspect .git/logs/ directly. v13 * Avoid exposing tombstones from reftable_stack to git * Write peeled tags * Fix GC issue: use git-refpack in test * Fix unborn branches: must propagate errno from read_raw_ref. * add GIT_TEST_REFTABLE environment to control default. * add REFTABLE test prerequisite. * fix & test update-ref -d. * print error message for failed update-ref transactions. Han-Wen Nienhuys (11): refs.h: clarify reflog iteration order Iterate over the "refs/" namespace in for_each_[raw]ref create .git/refs in files-backend.c refs: document how ref_iterator_advance_fn should handle symrefs Add .gitattributes for the reftable/ directory reftable: define version 2 of the spec to accomodate SHA256 reftable: clarify how empty tables should be written Add reftable library Reftable support for git-core Add some reftable testing infrastructure t: use update-ref and show-ref to reading/writing refs Jonathan Nieder (1): reftable: file format documentation Documentation/Makefile | 1 + Documentation/technical/reftable.txt | 1080 ++++++++++++++++ .../technical/repository-version.txt | 7 + Makefile | 26 +- builtin/clone.c | 3 +- builtin/init-db.c | 63 +- cache.h | 6 +- refs.c | 33 +- refs.h | 8 +- refs/files-backend.c | 6 + refs/refs-internal.h | 6 + refs/reftable-backend.c | 1045 +++++++++++++++ reftable/.gitattributes | 1 + reftable/LICENSE | 31 + reftable/README.md | 11 + reftable/VERSION | 5 + reftable/basics.c | 209 +++ reftable/basics.h | 53 + reftable/block.c | 425 ++++++ reftable/block.h | 124 ++ reftable/blocksource.h | 22 + reftable/bytes.c | 0 reftable/config.h | 1 + reftable/constants.h | 21 + reftable/dump.c | 97 ++ reftable/file.c | 98 ++ reftable/iter.c | 234 ++++ reftable/iter.h | 60 + reftable/merged.c | 327 +++++ reftable/merged.h | 36 + reftable/pq.c | 115 ++ reftable/pq.h | 34 + reftable/reader.c | 754 +++++++++++ reftable/reader.h | 68 + reftable/record.c | 1126 ++++++++++++++++ reftable/record.h | 121 ++ reftable/reftable.h | 527 ++++++++ reftable/slice.c | 224 ++++ reftable/slice.h | 76 ++ reftable/stack.c | 1151 +++++++++++++++++ reftable/stack.h | 44 + reftable/system.h | 53 + reftable/tree.c | 67 + reftable/tree.h | 34 + reftable/update.sh | 23 + reftable/writer.c | 661 ++++++++++ reftable/writer.h | 60 + reftable/zlib-compat.c | 92 ++ repository.c | 2 + repository.h | 3 + setup.c | 12 +- t/t0002-gitfile.sh | 2 +- t/t0031-reftable.sh | 99 ++ t/t1400-update-ref.sh | 32 +- t/t1506-rev-parse-diagnosis.sh | 2 +- t/t3210-pack-refs.sh | 6 + t/t6050-replace.sh | 2 +- t/t9020-remote-svn.sh | 4 +- t/test-lib.sh | 5 + 59 files changed, 9378 insertions(+), 60 deletions(-) create mode 100644 Documentation/technical/reftable.txt create mode 100644 refs/reftable-backend.c create mode 100644 reftable/.gitattributes create mode 100644 reftable/LICENSE create mode 100644 reftable/README.md create mode 100644 reftable/VERSION create mode 100644 reftable/basics.c create mode 100644 reftable/basics.h create mode 100644 reftable/block.c create mode 100644 reftable/block.h create mode 100644 reftable/blocksource.h create mode 100644 reftable/bytes.c create mode 100644 reftable/config.h create mode 100644 reftable/constants.h create mode 100644 reftable/dump.c create mode 100644 reftable/file.c create mode 100644 reftable/iter.c create mode 100644 reftable/iter.h create mode 100644 reftable/merged.c create mode 100644 reftable/merged.h create mode 100644 reftable/pq.c create mode 100644 reftable/pq.h create mode 100644 reftable/reader.c create mode 100644 reftable/reader.h create mode 100644 reftable/record.c create mode 100644 reftable/record.h create mode 100644 reftable/reftable.h create mode 100644 reftable/slice.c create mode 100644 reftable/slice.h create mode 100644 reftable/stack.c create mode 100644 reftable/stack.h create mode 100644 reftable/system.h create mode 100644 reftable/tree.c create mode 100644 reftable/tree.h create mode 100755 reftable/update.sh create mode 100644 reftable/writer.c create mode 100644 reftable/writer.h create mode 100644 reftable/zlib-compat.c create mode 100755 t/t0031-reftable.sh base-commit: e870325ee8575d5c3d7afe0ba2c9be072c692b65 Submitted-As: https://lore.kernel.org/git/pull.539.v10.git.1588018418.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.git.1579808479.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v2.git.1580134944.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v3.git.1580848060.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v4.git.1581029756.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v5.git.1581344060.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v6.git.1582015420.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v7.git.1582706986.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v8.git.1585740538.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.539.v9.git.1587417295.gitgitgadget@gmail.com
Assets 2
-
2020-04-27T20:13:38Z -
2020-04-27T20:13:38Z -