All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ed Maste <emaste@FreeBSD.org>
To: git mailing list <git@vger.kernel.org>
Cc: Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>,
	Junio C Hamano <gitster@pobox.com>, Eric Wong <e@80x24.org>,
	Ed Maste <emaste@FreeBSD.org>
Subject: [PATCH v2] sparse-checkout: improve OS ls compatibility
Date: Thu, 19 Dec 2019 21:45:16 +0000	[thread overview]
Message-ID: <20191219214516.69209-1-emaste@FreeBSD.org> (raw)
In-Reply-To: <20191219015833.49314-1-emaste@FreeBSD.org>

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(-)

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
-- 
2.24.0


  parent reply	other threads:[~2019-12-19 21:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-19  1:58 [PATCH] sparse-checkout: improve OS ls compatibility Ed Maste
2019-12-19  2:07 ` Derrick Stolee
2019-12-19  2:18   ` Ed Maste
2019-12-19  2:22     ` Derrick Stolee
2019-12-19  2:45 ` Eric Wong
2019-12-19 13:56   ` Derrick Stolee
2019-12-19 16:15     ` Ed Maste
2019-12-19 16:34       ` Derrick Stolee
2019-12-19 18:11   ` Junio C Hamano
2019-12-19 20:56     ` Ed Maste
2019-12-19 22:01       ` Junio C Hamano
2019-12-19 21:45 ` Ed Maste [this message]
2019-12-19 22:27   ` [PATCH v2] " Denton Liu
2019-12-20 15:38 ` [PATCH v3] " Ed Maste
2019-12-20 16:05   ` Derrick Stolee
2019-12-20 17:55     ` Junio C Hamano
2019-12-20 17:55   ` Eric Sunshine
2019-12-20 18:15     ` Ed Maste
2019-12-20 18:21     ` Junio C Hamano
2019-12-20 18:34       ` Eric Sunshine
2019-12-20 18:34       ` Ed Maste
2019-12-20 19:23         ` Junio C Hamano
2019-12-20 19:33           ` Eric Sunshine
2019-12-20 19:41 ` [PATCH v4] " Ed Maste

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191219214516.69209-1-emaste@FreeBSD.org \
    --to=emaste@freebsd.org \
    --cc=e@80x24.org \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.