]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sparse-checkout: upgrade repository to version 1 when enabling extension
authorXin Li <delphij@google.com>
Fri, 5 Jun 2020 09:10:03 +0000 (02:10 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Jun 2020 17:13:30 +0000 (10:13 -0700)
The 'extensions' configuration variable gets special meaning in the new
repository version, so when enabling the extension we should upgrade the
repository to version 1.

Signed-off-by: Xin Li <delphij@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/sparse-checkout.c
t/t2404-worktree-config.sh

index 95d0882417211e4172bc028de7e54c1948030f08..95669815d4bec005d283e1676ac4cb754a0ccbb8 100644 (file)
@@ -249,6 +249,8 @@ static int set_config(enum sparse_checkout_mode mode)
 {
        const char *config_path;
 
+       if (upgrade_repository_format(1) < 0)
+               die(_("unable to upgrade repository format to enable worktreeConfig"));
        if (git_config_set_gently("extensions.worktreeConfig", "true")) {
                error(_("failed to set extensions.worktreeConfig setting"));
                return 1;
index 286121d8decbf8572bc6c60b1cb9524116156ef2..9536d1091954b48a87b74eead0c382ce70355c4e 100755 (executable)
@@ -23,8 +23,10 @@ test_expect_success 'config --worktree without extension' '
 '
 
 test_expect_success 'enable worktreeConfig extension' '
+       git config core.repositoryformatversion 1 &&
        git config extensions.worktreeConfig true &&
-       test_cmp_config true extensions.worktreeConfig
+       test_cmp_config true extensions.worktreeConfig &&
+       test_cmp_config 1 core.repositoryformatversion
 '
 
 test_expect_success 'config is shared as before' '