Re: [PATCH v3 1/3] reftable/stack: add env to disable autocompaction
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Apr 2, 2024, 07:23 UTC
- Message-ID
- <ZguygYtc7plWTIA2@tanuki>
- In-Reply-To
- <2fdd8ea11331da13ec56d511fe4cadd47544419f.1711685809.git.gitgitgadget@gmail.com>
On Fri, Mar 29, 2024 at 04:16:47AM +0000, Justin Tobler via GitGitGadget wrote:
Show 25 quoted lines
> From: Justin Tobler <jltobler@gmail.com>
>
> In future tests it will be neccesary to create repositories with a set
> number of tables. To make this easier, introduce the
> `GIT_TEST_REFTABLE_NO_AUTOCOMPACTION` environment variable that, when
> set, disables autocompaction of reftables.
>
> Signed-off-by: Justin Tobler <jltobler@gmail.com>
> ---
> reftable/stack.c | 2 +-
> reftable/system.h | 1 +
> t/t0610-reftable-basics.sh | 15 +++++++++++++++
> 3 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/reftable/stack.c b/reftable/stack.c
> index 1ecf1b9751c..07262beaaf7 100644
> --- a/reftable/stack.c
> +++ b/reftable/stack.c
> @@ -681,7 +681,7 @@ int reftable_addition_commit(struct reftable_addition *add)
> if (err)
> goto done;
>
> - if (!add->stack->disable_auto_compact)
> + if (!add->stack->disable_auto_compact && !git_env_bool("GIT_TEST_REFTABLE_NO_AUTOCOMPACTION", 0))
> err = reftable_stack_auto_compact(add->stack);The double-negation in `GIT_TEST_REFTABLE_NO_AUTOCOMPACTION=false` may be somewhat hard to parse. Should we rename this to `GIT_TEST_REFTABLE_AUTO_COMPACTION` with a default value of `1`?
Patrick
Show 42 quoted lines
> done:
> diff --git a/reftable/system.h b/reftable/system.h
> index 5d8b6dede50..05b7c8554af 100644
> --- a/reftable/system.h
> +++ b/reftable/system.h
> @@ -17,6 +17,7 @@ license that can be found in the LICENSE file or at
> #include "tempfile.h"
> #include "hash-ll.h" /* hash ID, sizes.*/
> #include "dir.h" /* remove_dir_recursively, for tests.*/
> +#include "parse.h"
>
> int hash_size(uint32_t id);
>
> diff --git a/t/t0610-reftable-basics.sh b/t/t0610-reftable-basics.sh
> index 686781192eb..434044078ed 100755
> --- a/t/t0610-reftable-basics.sh
> +++ b/t/t0610-reftable-basics.sh
> @@ -299,6 +299,21 @@ test_expect_success 'ref transaction: writes cause auto-compaction' '
> test_line_count = 1 repo/.git/reftable/tables.list
> '
>
> +test_expect_success 'ref transaction: environment variable disables auto-compaction' '
> + test_when_finished "rm -rf repo" &&
> +
> + git init repo &&
> + test_commit -C repo A &&
> + for i in $(test_seq 20)
> + do
> + GIT_TEST_REFTABLE_NO_AUTOCOMPACTION=true git -C repo update-ref branch-$i HEAD || return 1
> + done &&
> + test_line_count = 23 repo/.git/reftable/tables.list &&
> +
> + git -C repo update-ref foo HEAD &&
> + test_line_count = 1 repo/.git/reftable/tables.list
> +'
> +
> check_fsync_events () {
> local trace="$1" &&
> shift &&
> --
> gitgitgadget
>