pr-git-847/hanwen/libreftable-v7
tagged this
19 Apr 11:37
This splits the giant commit from https://github.com/gitgitgadget/git/pull/539 into a series of smaller commits, which build and have unittests. Changes relative to last series: version 12 Apr 2021: * AEvar's comments: zlib into compat/, void* casts, use implicit pointer <-> boolean conversions. * Plug memory leak in indexed reverse lookup. * Take SHA1/SHA256 constants from git headers. * Fix branch rename (branch -M) * Fix stash (support reflog deletion.) * Move debug printing logic out of dump.c * Fix reflog --dry-run expire. * Implement branch copy (branch -c) * Fix deletion of 0 branches * Fix transactions without REF_HAVE_OLD * Add requirement REFFILES for test cases that are specific to the files backend. * Fixes for various test files. The commits up to "hash.h: provide constants for the hash IDs" should be good to merge to 'next'. There are several test fixups, but I've put them in another series because GGG enforces max 30 commits. Due to using uncompress2, this build fails on the Linux32 builder; what is the magic incantation to run autoconf? There are other unexplained failures in t0031-reftable.sh on CI that I haven't been able to look into. The test passes for me, locally. Han-Wen Nienhuys (27): refs: ref_iterator_peel returns boolean, rather than peel_status refs: document reflog_expire_fn's flag argument refs/debug: trace into reflog expiry too hash.h: provide constants for the hash IDs init-db: set the_repository->hash_algo early on reftable: add LICENSE reftable: add error related functionality reftable: utility functions reftable: add blocksource, an abstraction for random access reads reftable: (de)serialization for the polymorphic record type. Provide zlib's uncompress2 from compat/zlib-compat.c reftable: reading/writing blocks reftable: a generic binary tree implementation reftable: write reftable files reftable: generic interface to tables reftable: read reftable files reftable: reftable file level tests reftable: add a heap-based priority queue for reftable records reftable: add merged table view reftable: implement refname validation reftable: implement stack, a mutable database of reftable files. reftable: add dump utility Reftable support for git-core Add "test-tool dump-reftable" command. t1301: document what needs to be done for REFTABLE t1401,t2011: parameterize HEAD.lock for REFTABLE t1404: annotate test cases with REFFILES SZEDER Gábor (1): git-prompt: prepare for reftable refs backend Documentation/config/extensions.txt | 9 + .../technical/repository-version.txt | 7 + Makefile | 54 +- builtin/clone.c | 5 +- builtin/init-db.c | 76 +- builtin/stash.c | 8 +- builtin/worktree.c | 27 +- cache.h | 8 +- compat/.gitattributes | 1 + compat/zlib-uncompress2.c | 92 + config.mak.uname | 2 +- configure.ac | 13 + contrib/buildsystems/CMakeLists.txt | 14 +- contrib/buildsystems/Generators/Vcxproj.pm | 11 +- contrib/completion/git-prompt.sh | 7 +- git-compat-util.h | 4 + hash.h | 6 + object-file.c | 6 +- refs.c | 28 +- refs.h | 3 + refs/debug.c | 47 +- refs/ref-cache.c | 2 +- refs/refs-internal.h | 8 + refs/reftable-backend.c | 1616 +++++++++++++++++ reftable/LICENSE | 31 + reftable/basics.c | 128 ++ reftable/basics.h | 60 + reftable/basics_test.c | 98 + reftable/block.c | 446 +++++ reftable/block.h | 127 ++ reftable/block_test.c | 121 ++ reftable/blocksource.c | 148 ++ reftable/blocksource.h | 22 + reftable/constants.h | 21 + reftable/dump.c | 100 + reftable/error.c | 41 + reftable/generic.c | 169 ++ reftable/generic.h | 32 + reftable/iter.c | 194 ++ reftable/iter.h | 69 + reftable/merged.c | 362 ++++ reftable/merged.h | 35 + reftable/merged_test.c | 292 +++ reftable/pq.c | 115 ++ reftable/pq.h | 32 + reftable/pq_test.c | 72 + reftable/publicbasics.c | 58 + reftable/reader.c | 794 ++++++++ reftable/reader.h | 66 + reftable/readwrite_test.c | 621 +++++++ reftable/record.c | 1202 ++++++++++++ reftable/record.h | 139 ++ reftable/record_test.c | 407 +++++ reftable/refname.c | 209 +++ reftable/refname.h | 29 + reftable/refname_test.c | 102 ++ reftable/reftable-blocksource.h | 49 + reftable/reftable-error.h | 62 + reftable/reftable-generic.h | 47 + reftable/reftable-iterator.h | 39 + reftable/reftable-malloc.h | 18 + reftable/reftable-merged.h | 72 + reftable/reftable-reader.h | 101 ++ reftable/reftable-record.h | 114 ++ reftable/reftable-stack.h | 128 ++ reftable/reftable-tests.h | 23 + reftable/reftable-writer.h | 147 ++ reftable/reftable.c | 115 ++ reftable/stack.c | 1395 ++++++++++++++ reftable/stack.h | 41 + reftable/stack_test.c | 940 ++++++++++ reftable/system.h | 24 + reftable/test_framework.c | 23 + reftable/test_framework.h | 53 + reftable/tree.c | 63 + reftable/tree.h | 34 + reftable/tree_test.c | 61 + reftable/writer.c | 690 +++++++ reftable/writer.h | 50 + repository.c | 2 + repository.h | 3 + setup.c | 9 +- t/helper/test-reftable.c | 21 + t/helper/test-tool.c | 4 +- t/helper/test-tool.h | 2 + t/t0031-reftable.sh | 271 +++ t/t0032-reftable-unittest.sh | 15 + t/t1301-shared-repo.sh | 8 +- t/t1401-symbolic-ref.sh | 11 +- t/t1404-update-ref-errors.sh | 86 +- t/t1409-avoid-packing-refs.sh | 6 + t/t1450-fsck.sh | 6 + t/t2011-checkout-invalid-head.sh | 11 +- t/t3210-pack-refs.sh | 6 + t/test-lib.sh | 5 + 95 files changed, 13065 insertions(+), 86 deletions(-) create mode 100644 compat/.gitattributes create mode 100644 compat/zlib-uncompress2.c create mode 100644 refs/reftable-backend.c create mode 100644 reftable/LICENSE create mode 100644 reftable/basics.c create mode 100644 reftable/basics.h create mode 100644 reftable/basics_test.c create mode 100644 reftable/block.c create mode 100644 reftable/block.h create mode 100644 reftable/block_test.c create mode 100644 reftable/blocksource.c create mode 100644 reftable/blocksource.h create mode 100644 reftable/constants.h create mode 100644 reftable/dump.c create mode 100644 reftable/error.c create mode 100644 reftable/generic.c create mode 100644 reftable/generic.h 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/merged_test.c create mode 100644 reftable/pq.c create mode 100644 reftable/pq.h create mode 100644 reftable/pq_test.c create mode 100644 reftable/publicbasics.c create mode 100644 reftable/reader.c create mode 100644 reftable/reader.h create mode 100644 reftable/readwrite_test.c create mode 100644 reftable/record.c create mode 100644 reftable/record.h create mode 100644 reftable/record_test.c create mode 100644 reftable/refname.c create mode 100644 reftable/refname.h create mode 100644 reftable/refname_test.c create mode 100644 reftable/reftable-blocksource.h create mode 100644 reftable/reftable-error.h create mode 100644 reftable/reftable-generic.h create mode 100644 reftable/reftable-iterator.h create mode 100644 reftable/reftable-malloc.h create mode 100644 reftable/reftable-merged.h create mode 100644 reftable/reftable-reader.h create mode 100644 reftable/reftable-record.h create mode 100644 reftable/reftable-stack.h create mode 100644 reftable/reftable-tests.h create mode 100644 reftable/reftable-writer.h create mode 100644 reftable/reftable.c create mode 100644 reftable/stack.c create mode 100644 reftable/stack.h create mode 100644 reftable/stack_test.c create mode 100644 reftable/system.h create mode 100644 reftable/test_framework.c create mode 100644 reftable/test_framework.h create mode 100644 reftable/tree.c create mode 100644 reftable/tree.h create mode 100644 reftable/tree_test.c create mode 100644 reftable/writer.c create mode 100644 reftable/writer.h create mode 100644 t/helper/test-reftable.c create mode 100755 t/t0031-reftable.sh create mode 100755 t/t0032-reftable-unittest.sh base-commit: 54a391711554ed41b4b0792cfef004abc74893bd Submitted-As: https://lore.kernel.org/git/pull.847.v7.git.git.1618832276.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.git.git.1600283416.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.v2.git.git.1601568663.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.v3.git.git.1606419752.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.v4.git.git.1607522429.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.v5.git.git.1615580397.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.847.v6.git.git.1618255552.gitgitgadget@gmail.com
Assets 2
-
2021-04-19T11:37:58Z -
2021-04-19T11:37:58Z -