a0cc58450a
The 'git worktree' command used to be just another mode in 'git checkout', namely 'git checkout --to'. When the tests for the latter were retrofitted for the former, the test name was adjusted, but the test number was kept, even though the test is testing a different command now. t/README states: "Second digit tells the particular command we are testing.", so 'git worktree' should have a separate number just for itself. Move the worktree tests to t24* to adhere to that guideline. We're going to make use of the free'd up numbers in a subsequent commit. Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
80 lines
2.3 KiB
Bash
Executable File
80 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description="config file in multi worktree"
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
test_commit start
|
|
'
|
|
|
|
test_expect_success 'config --worktree in single worktree' '
|
|
git config --worktree foo.bar true &&
|
|
test_cmp_config true foo.bar
|
|
'
|
|
|
|
test_expect_success 'add worktrees' '
|
|
git worktree add wt1 &&
|
|
git worktree add wt2
|
|
'
|
|
|
|
test_expect_success 'config --worktree without extension' '
|
|
test_must_fail git config --worktree foo.bar false
|
|
'
|
|
|
|
test_expect_success 'enable worktreeConfig extension' '
|
|
git config extensions.worktreeConfig true &&
|
|
test_cmp_config true extensions.worktreeConfig
|
|
'
|
|
|
|
test_expect_success 'config is shared as before' '
|
|
git config this.is shared &&
|
|
test_cmp_config shared this.is &&
|
|
test_cmp_config -C wt1 shared this.is &&
|
|
test_cmp_config -C wt2 shared this.is
|
|
'
|
|
|
|
test_expect_success 'config is shared (set from another worktree)' '
|
|
git -C wt1 config that.is also-shared &&
|
|
test_cmp_config also-shared that.is &&
|
|
test_cmp_config -C wt1 also-shared that.is &&
|
|
test_cmp_config -C wt2 also-shared that.is
|
|
'
|
|
|
|
test_expect_success 'config private to main worktree' '
|
|
git config --worktree this.is for-main &&
|
|
test_cmp_config for-main this.is &&
|
|
test_cmp_config -C wt1 shared this.is &&
|
|
test_cmp_config -C wt2 shared this.is
|
|
'
|
|
|
|
test_expect_success 'config private to linked worktree' '
|
|
git -C wt1 config --worktree this.is for-wt1 &&
|
|
test_cmp_config for-main this.is &&
|
|
test_cmp_config -C wt1 for-wt1 this.is &&
|
|
test_cmp_config -C wt2 shared this.is
|
|
'
|
|
|
|
test_expect_success 'core.bare no longer for main only' '
|
|
test_config core.bare true &&
|
|
test "$(git rev-parse --is-bare-repository)" = true &&
|
|
test "$(git -C wt1 rev-parse --is-bare-repository)" = true &&
|
|
test "$(git -C wt2 rev-parse --is-bare-repository)" = true
|
|
'
|
|
|
|
test_expect_success 'per-worktree core.bare is picked up' '
|
|
git -C wt1 config --worktree core.bare true &&
|
|
test "$(git rev-parse --is-bare-repository)" = false &&
|
|
test "$(git -C wt1 rev-parse --is-bare-repository)" = true &&
|
|
test "$(git -C wt2 rev-parse --is-bare-repository)" = false
|
|
'
|
|
|
|
test_expect_success 'config.worktree no longer read without extension' '
|
|
git config --unset extensions.worktreeConfig &&
|
|
test_cmp_config shared this.is &&
|
|
test_cmp_config -C wt1 shared this.is &&
|
|
test_cmp_config -C wt2 shared this.is
|
|
'
|
|
|
|
test_done
|