On FreeBSD, when executed by root ls enables the '-A' option: -A Include directory entries whose names begin with a dot (`.') except for . and ... Automatically set for the super-user unless -I is specified. Pipe ls's output to grep -v .git to remove the undesired entry. Also pass the -1 option to ensure one entry per line. Signed-off-by: Ed Maste <emaste@xxxxxxxxxxx> --- There are several different ways this could be solved; this approach felt cleanest to me, but there are at least two other reasonable alternatives: * Add -a to the invocations and .git to the expected output * Add LSFLAGS and set it to -I on BSDs, to turn off the special dot behaviour I'll submit a new patch if a different approach is preferred. t/t1091-sparse-checkout-builtin.sh | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh index cee98a1c8a..3a3eafa653 100755 --- a/t/t1091-sparse-checkout-builtin.sh +++ b/t/t1091-sparse-checkout-builtin.sh @@ -4,6 +4,11 @@ test_description='sparse checkout builtin tests' . ./test-lib.sh +ls_no_git() +{ + ls -1 "$1" | grep -v .git +} + test_expect_success 'setup' ' git init repo && ( @@ -50,7 +55,7 @@ test_expect_success 'git sparse-checkout init' ' EOF test_cmp expect repo/.git/info/sparse-checkout && test_cmp_config -C repo true core.sparsecheckout && - ls repo >dir && + ls_no_git repo >dir && echo a >expect && test_cmp expect dir ' @@ -73,7 +78,7 @@ test_expect_success 'init with existing sparse-checkout' ' *folder* EOF test_cmp expect repo/.git/info/sparse-checkout && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a folder1 @@ -90,7 +95,7 @@ test_expect_success 'clone --sparse' ' !/*/ EOF test_cmp expect actual && - ls clone >dir && + ls_no_git clone >dir && echo a >expect && test_cmp expect dir ' @@ -119,7 +124,7 @@ test_expect_success 'set sparse-checkout using builtin' ' git -C repo sparse-checkout list >actual && test_cmp expect actual && test_cmp expect repo/.git/info/sparse-checkout && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a folder1 @@ -139,7 +144,7 @@ test_expect_success 'set sparse-checkout using --stdin' ' git -C repo sparse-checkout list >actual && test_cmp expect actual && test_cmp expect repo/.git/info/sparse-checkout && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a folder1 @@ -154,7 +159,7 @@ test_expect_success 'cone mode: match patterns' ' git -C repo read-tree -mu HEAD 2>err && test_i18ngrep ! "disabling cone patterns" err && git -C repo reset --hard && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a folder1 @@ -177,7 +182,7 @@ test_expect_success 'sparse-checkout disable' ' test_path_is_file repo/.git/info/sparse-checkout && git -C repo config --list >config && test_must_fail git config core.sparseCheckout && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a deep @@ -191,24 +196,24 @@ test_expect_success 'cone mode: init and set' ' git -C repo sparse-checkout init --cone && git -C repo config --list >config && test_i18ngrep "core.sparsecheckoutcone=true" config && - ls repo >dir && + ls_no_git repo >dir && echo a >expect && test_cmp expect dir && git -C repo sparse-checkout set deep/deeper1/deepest/ 2>err && test_must_be_empty err && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a deep EOF test_cmp expect dir && - ls repo/deep >dir && + ls_no_git repo/deep >dir && cat >expect <<-EOF && a deeper1 EOF test_cmp expect dir && - ls repo/deep/deeper1 >dir && + ls_no_git repo/deep/deeper1 >dir && cat >expect <<-EOF && a deepest @@ -234,7 +239,7 @@ test_expect_success 'cone mode: init and set' ' folder1 folder2 EOF - ls repo >dir && + ls_no_git repo >dir && test_cmp expect dir ' @@ -256,7 +261,7 @@ test_expect_success 'revert to old sparse-checkout on bad update' ' test_must_fail git -C repo sparse-checkout set deep/deeper1 2>err && test_i18ngrep "cannot set sparse-checkout patterns" err && test_cmp repo/.git/info/sparse-checkout expect && - ls repo/deep >dir && + ls_no_git repo/deep >dir && cat >expect <<-EOF && a deeper1 @@ -313,7 +318,7 @@ test_expect_success 'cone mode: set with core.ignoreCase=true' ' /folder1/ EOF test_cmp expect repo/.git/info/sparse-checkout && - ls repo >dir && + ls_no_git repo >dir && cat >expect <<-EOF && a folder1 -- 2.24.0