diff mbox series

[v2] sparse-checkout: improve OS ls compatibility

Message ID 20191219214516.69209-1-emaste@FreeBSD.org (mailing list archive)
State New, archived
Headers show
Series [v2] sparse-checkout: improve OS ls compatibility | expand

Commit Message

Ed Maste Dec. 19, 2019, 9:45 p.m. UTC
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.

As a result the .git directory appeared in the output when run as root.
Simulate no-dotfile ls behaviour using a shell glob.

Signed-off-by: Ed Maste <emaste@FreeBSD.org>
Helped-by: Eric Wong <e@80x24.org>
Helped-by: Junio C Hamano <gitster@pobox.com>
---
 t/t1091-sparse-checkout-builtin.sh | 32 +++++++++++++++++-------------
 1 file changed, 18 insertions(+), 14 deletions(-)

Comments

Denton Liu Dec. 19, 2019, 10:27 p.m. UTC | #1
Hi Ed,

On Thu, Dec 19, 2019 at 09:45:16PM +0000, Ed Maste wrote:
> 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.
> 
> As a result the .git directory appeared in the output when run as root.
> Simulate no-dotfile ls behaviour using a shell glob.
> 
> Signed-off-by: Ed Maste <emaste@FreeBSD.org>
> Helped-by: Eric Wong <e@80x24.org>
> Helped-by: Junio C Hamano <gitster@pobox.com>

Small nit: the Helped-by trailers should come before your sign-off.

Trailers should come in chronological order. Chronologically, they
helped you out with your patch and then, after that, you created your v2
based on their review and signed off on it.

Thanks,

Denton
diff mbox series

Patch

diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh
index cee98a1c8a..7e8cac679e 100755
--- a/t/t1091-sparse-checkout-builtin.sh
+++ b/t/t1091-sparse-checkout-builtin.sh
@@ -4,6 +4,10 @@  test_description='sparse checkout builtin tests'
 
 . ./test-lib.sh
 
+ls_no_dot() {
+	(cd "$1" && printf '%s\n' *)
+}
+
 test_expect_success 'setup' '
 	git init repo &&
 	(
@@ -50,7 +54,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_dot repo >dir  &&
 	echo a >expect &&
 	test_cmp expect dir
 '
@@ -73,7 +77,7 @@  test_expect_success 'init with existing sparse-checkout' '
 		*folder*
 	EOF
 	test_cmp expect repo/.git/info/sparse-checkout &&
-	ls repo >dir  &&
+	ls_no_dot repo >dir  &&
 	cat >expect <<-EOF &&
 		a
 		folder1
@@ -90,7 +94,7 @@  test_expect_success 'clone --sparse' '
 		!/*/
 	EOF
 	test_cmp expect actual &&
-	ls clone >dir &&
+	ls_no_dot clone >dir &&
 	echo a >expect &&
 	test_cmp expect dir
 '
@@ -119,7 +123,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_dot repo >dir  &&
 	cat >expect <<-EOF &&
 		a
 		folder1
@@ -139,7 +143,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_dot repo >dir  &&
 	cat >expect <<-EOF &&
 		a
 		folder1
@@ -154,7 +158,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_dot repo >dir  &&
 	cat >expect <<-EOF &&
 		a
 		folder1
@@ -177,7 +181,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_dot repo >dir &&
 	cat >expect <<-EOF &&
 		a
 		deep
@@ -191,24 +195,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_dot 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_dot repo >dir  &&
 	cat >expect <<-EOF &&
 		a
 		deep
 	EOF
 	test_cmp expect dir &&
-	ls repo/deep >dir  &&
+	ls_no_dot repo/deep >dir  &&
 	cat >expect <<-EOF &&
 		a
 		deeper1
 	EOF
 	test_cmp expect dir &&
-	ls repo/deep/deeper1 >dir  &&
+	ls_no_dot repo/deep/deeper1 >dir  &&
 	cat >expect <<-EOF &&
 		a
 		deepest
@@ -234,7 +238,7 @@  test_expect_success 'cone mode: init and set' '
 		folder1
 		folder2
 	EOF
-	ls repo >dir &&
+	ls_no_dot repo >dir &&
 	test_cmp expect dir
 '
 
@@ -256,7 +260,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_dot repo/deep >dir &&
 	cat >expect <<-EOF &&
 		a
 		deeper1
@@ -313,7 +317,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_dot repo >dir &&
 	cat >expect <<-EOF &&
 		a
 		folder1