git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] t0024: avoid losing exit status to pipes
@ 2024-01-18 21:53 Ghanshyam Thakkar
  2024-01-18 21:53 ` [PATCH 2/2] t0024: refactor to have single command per line Ghanshyam Thakkar
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-18 21:53 UTC (permalink / raw)
  To: git; +Cc: Ghanshyam Thakkar

Replace pipe with redirection operator '>' to store the output
to a temporary file after 'git archive' command since the pipe
will swallow the command's exit code and a crash won't
necessarily be noticed.

Also refactor an existing use of '>' to avoid having a space after
'>', according to Documentation/CodingGuidelines.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index a34de56420..fa4da7c2b3 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -9,7 +9,7 @@ test_expect_success setup '
 
 	git config core.autocrlf true &&
 
-	printf "CRLF line ending\r\nAnd another\r\n" > sample &&
+	printf "CRLF line ending\r\nAnd another\r\n" >sample &&
 	git add sample &&
 
 	test_tick &&
@@ -19,8 +19,8 @@ test_expect_success setup '
 
 test_expect_success 'tar archive' '
 
-	git archive --format=tar HEAD |
-	( mkdir untarred && cd untarred && "$TAR" -xf - ) &&
+	git archive --format=tar HEAD >test.tar &&
+	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
 
 	test_cmp sample untarred/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] t0024: refactor to have single command per line
  2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
@ 2024-01-18 21:53 ` Ghanshyam Thakkar
  2024-01-18 23:18   ` Junio C Hamano
  2024-01-18 23:04 ` [PATCH 1/2] t0024: avoid losing exit status to pipes Junio C Hamano
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-18 21:53 UTC (permalink / raw)
  To: git; +Cc: Ghanshyam Thakkar

Refactor t0024 to avoid having multiple chaining commands on a single
line, according to current styling norms.

e.g turn
    ( mkdir testdir && cd testdir && echo "in testdir" )
into:
    mkdir testdir &&
    (
        cd testdir &&
        echo "in testdir"
    )

This is also described in the Documentation/CodingGuidelines file.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index fa4da7c2b3..ff4efeaaee 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -20,7 +20,11 @@ test_expect_success setup '
 test_expect_success 'tar archive' '
 
 	git archive --format=tar HEAD >test.tar &&
-	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
+	mkdir untarred &&
+	(
+		cd untarred &&
+		"$TAR" -xf ../test.tar
+	) &&
 
 	test_cmp sample untarred/sample
 
@@ -30,7 +34,11 @@ test_expect_success UNZIP 'zip archive' '
 
 	git archive --format=zip HEAD >test.zip &&
 
-	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&
+	mkdir unzipped &&
+	(
+		cd unzipped &&
+		"$GIT_UNZIP" ../test.zip
+	) &&
 
 	test_cmp sample unzipped/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] t0024: avoid losing exit status to pipes
  2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
  2024-01-18 21:53 ` [PATCH 2/2] t0024: refactor to have single command per line Ghanshyam Thakkar
@ 2024-01-18 23:04 ` Junio C Hamano
  2024-01-19  1:36 ` [PATCH v2 " Ghanshyam Thakkar
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2024-01-18 23:04 UTC (permalink / raw)
  To: Ghanshyam Thakkar; +Cc: git

Ghanshyam Thakkar <shyamthakkar001@gmail.com> writes:

> Replace pipe with redirection operator '>' to store the output
> to a temporary file after 'git archive' command since the pipe
> will swallow the command's exit code and a crash won't
> necessarily be noticed.

OK.  I think this case what the patch does is the right thing.  If
we were creating a huge tar archive and have the downstream only
consuming for a small disk footprint (e.g., "git archive | tar tf -"),
use of pipe (and loss of exit status) may be justified, but I do not
think that is the case here.


> Also refactor an existing use of '>' to avoid having a space after
> '>', according to Documentation/CodingGuidelines.

It may be just me, but I wouldn't call that "refactor", which we
often use to refer to changing the way an existing functional unit
works internally, by splitting the innard of a function into
separate helper functions, by replacing the open-coded duplicate
with calls to such helper functions, etc.  Correcting the coding
style violation is merely a "fix".

	Also fix an unwanted space after '>' redirection to match
	the style in CodingGuidelines.

In any case, the patch text looks good.

Thanks.



> Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
> ---
>  t/t0024-crlf-archive.sh | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
> index a34de56420..fa4da7c2b3 100755
> --- a/t/t0024-crlf-archive.sh
> +++ b/t/t0024-crlf-archive.sh
> @@ -9,7 +9,7 @@ test_expect_success setup '
>  
>  	git config core.autocrlf true &&
>  
> -	printf "CRLF line ending\r\nAnd another\r\n" > sample &&
> +	printf "CRLF line ending\r\nAnd another\r\n" >sample &&
>  	git add sample &&
>  
>  	test_tick &&
> @@ -19,8 +19,8 @@ test_expect_success setup '
>  
>  test_expect_success 'tar archive' '
>  
> -	git archive --format=tar HEAD |
> -	( mkdir untarred && cd untarred && "$TAR" -xf - ) &&
> +	git archive --format=tar HEAD >test.tar &&
> +	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
>  
>  	test_cmp sample untarred/sample

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] t0024: refactor to have single command per line
  2024-01-18 21:53 ` [PATCH 2/2] t0024: refactor to have single command per line Ghanshyam Thakkar
@ 2024-01-18 23:18   ` Junio C Hamano
  2024-01-19  0:57     ` Ghanshyam Thakkar
  2024-01-19  3:40     ` Ghanshyam Thakkar
  0 siblings, 2 replies; 10+ messages in thread
From: Junio C Hamano @ 2024-01-18 23:18 UTC (permalink / raw)
  To: Ghanshyam Thakkar; +Cc: git

Ghanshyam Thakkar <shyamthakkar001@gmail.com> writes:

> Refactor t0024 to avoid having multiple chaining commands on a single
> line, according to current styling norms.
>
> e.g turn
>     ( mkdir testdir && cd testdir && echo "in testdir" )
> into:
>     mkdir testdir &&
>     (
>         cd testdir &&
>         echo "in testdir"
>     )
>
> This is also described in the Documentation/CodingGuidelines file.

Sure.  

	Subject: t0024: style fix

	t0024 has multiple command invocations on a single line,
	which goes against the style given by CodingGuidelines.

would be sufficient.


> -	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
> +	mkdir untarred &&
> +	(
> +		cd untarred &&
> +		"$TAR" -xf ../test.tar
> +	) &&

I think we assume "$TAR" is modern enough to know about the "C"
option (see t/t5004-archive-corner-cases.sh), so

	mkdir untarred &&
	"$TAR" Cxf untarred test.tar

without even a subshell may be sufficient.

> @@ -30,7 +34,11 @@ test_expect_success UNZIP 'zip archive' '
>  
>  	git archive --format=zip HEAD >test.zip &&
>  
> -	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&
> +	mkdir unzipped &&
> +	(
> +		cd unzipped &&
> +		"$GIT_UNZIP" ../test.zip
> +	) &&

I do not think we assume "$GIT_UNZIP" to always know about the
equivalent of "C" (is that "-d exdir"?), so what you wrote is the
best we can do.

Thanks.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] t0024: refactor to have single command per line
  2024-01-18 23:18   ` Junio C Hamano
@ 2024-01-19  0:57     ` Ghanshyam Thakkar
  2024-01-19  3:40     ` Ghanshyam Thakkar
  1 sibling, 0 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  0:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Fri Jan 19, 2024 at 4:48 AM IST, Junio C Hamano wrote:
> > -	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
> > +	mkdir untarred &&
> > +	(
> > +		cd untarred &&
> > +		"$TAR" -xf ../test.tar
> > +	) &&
>
> I think we assume "$TAR" is modern enough to know about the "C"
> option (see t/t5004-archive-corner-cases.sh), so
>
> 	mkdir untarred &&
> 	"$TAR" Cxf untarred test.tar
>
> without even a subshell may be sufficient.

Will update it in v2.
>
> > @@ -30,7 +34,11 @@ test_expect_success UNZIP 'zip archive' '
> >  
> >  	git archive --format=zip HEAD >test.zip &&
> >  
> > -	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&
> > +	mkdir unzipped &&
> > +	(
> > +		cd unzipped &&
> > +		"$GIT_UNZIP" ../test.zip
> > +	) &&
>
> I do not think we assume "$GIT_UNZIP" to always know about the
> equivalent of "C" (is that "-d exdir"?), so what you wrote is the
> best we can do.

Yeah, "-d exdir" would be the equivalent, but there's no mention of it
in the testcases in t5003 or t5004. So, keeping it as is in v2.

Thanks.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/2] t0024: avoid losing exit status to pipes
  2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
  2024-01-18 21:53 ` [PATCH 2/2] t0024: refactor to have single command per line Ghanshyam Thakkar
  2024-01-18 23:04 ` [PATCH 1/2] t0024: avoid losing exit status to pipes Junio C Hamano
@ 2024-01-19  1:36 ` Ghanshyam Thakkar
  2024-01-19  1:36   ` [PATCH v2 2/2] t0024: style fix Ghanshyam Thakkar
  2024-01-19  3:33 ` [PATCH v3 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
  2024-01-19  3:33 ` [PATCH v3 2/2] t0024: style fix Ghanshyam Thakkar
  4 siblings, 1 reply; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  1:36 UTC (permalink / raw)
  To: git; +Cc: gitster, Ghanshyam Thakkar

Replace pipe with redirection operator '>' to store the output
to a temporary file after 'git archive' command since the pipe
will swallow the command's exit code and a crash won't
necessarily be noticed.

Also fix an unwanted space after redirection '>' to match the
style described in CodingGuidelines.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index a34de56420..fa4da7c2b3 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -9,7 +9,7 @@ test_expect_success setup '
 
 	git config core.autocrlf true &&
 
-	printf "CRLF line ending\r\nAnd another\r\n" > sample &&
+	printf "CRLF line ending\r\nAnd another\r\n" >sample &&
 	git add sample &&
 
 	test_tick &&
@@ -19,8 +19,8 @@ test_expect_success setup '
 
 test_expect_success 'tar archive' '
 
-	git archive --format=tar HEAD |
-	( mkdir untarred && cd untarred && "$TAR" -xf - ) &&
+	git archive --format=tar HEAD >test.tar &&
+	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
 
 	test_cmp sample untarred/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/2] t0024: style fix
  2024-01-19  1:36 ` [PATCH v2 " Ghanshyam Thakkar
@ 2024-01-19  1:36   ` Ghanshyam Thakkar
  0 siblings, 0 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  1:36 UTC (permalink / raw)
  To: git; +Cc: gitster, Ghanshyam Thakkar

t0024 has multiple command invocations on a single line, which
goes against the style described in CodingGuidelines, thus fix
that.

Also, use the -C flag to give the destination when using $TAR,
therefore, not requiring a subshell.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index fa4da7c2b3..9967a646d1 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -20,7 +20,8 @@ test_expect_success setup '
 test_expect_success 'tar archive' '
 
 	git archive --format=tar HEAD >test.tar &&
-	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
+	mkdir untarred &&
+	"$TAR" Cxf untarred test.tar &&
 
 	test_cmp sample untarred/sample
 
@@ -30,7 +31,11 @@ test_expect_success UNZIP 'zip archive' '
 
 	git archive --format=zip HEAD >test.zip &&
 
-	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&
+	mkdir unzipped &&
+	(
+		cd unzipped &&
+		"$GIT_UNZIP" ../test.zip
+	) &&
 
 	test_cmp sample unzipped/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v3 1/2] t0024: avoid losing exit status to pipes
  2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
                   ` (2 preceding siblings ...)
  2024-01-19  1:36 ` [PATCH v2 " Ghanshyam Thakkar
@ 2024-01-19  3:33 ` Ghanshyam Thakkar
  2024-01-19  3:33 ` [PATCH v3 2/2] t0024: style fix Ghanshyam Thakkar
  4 siblings, 0 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  3:33 UTC (permalink / raw)
  To: git; +Cc: gitster, Ghanshyam Thakkar

Replace pipe with redirection operator '>' to store the output
to a temporary file after 'git archive' command since the pipe
will swallow the command's exit code and a crash won't
necessarily be noticed.

Also fix an unwanted space after redirection '>' to match the
style described in CodingGuidelines.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index a34de56420..fa4da7c2b3 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -9,7 +9,7 @@ test_expect_success setup '
 
 	git config core.autocrlf true &&
 
-	printf "CRLF line ending\r\nAnd another\r\n" > sample &&
+	printf "CRLF line ending\r\nAnd another\r\n" >sample &&
 	git add sample &&
 
 	test_tick &&
@@ -19,8 +19,8 @@ test_expect_success setup '
 
 test_expect_success 'tar archive' '
 
-	git archive --format=tar HEAD |
-	( mkdir untarred && cd untarred && "$TAR" -xf - ) &&
+	git archive --format=tar HEAD >test.tar &&
+	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
 
 	test_cmp sample untarred/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v3 2/2] t0024: style fix
  2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
                   ` (3 preceding siblings ...)
  2024-01-19  3:33 ` [PATCH v3 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
@ 2024-01-19  3:33 ` Ghanshyam Thakkar
  4 siblings, 0 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  3:33 UTC (permalink / raw)
  To: git; +Cc: gitster, Ghanshyam Thakkar

t0024 has multiple command invocations on a single line, which
goes against the style described in CodingGuidelines, thus fix
that.

Also, use the -C flag to give the destination when using $TAR,
therefore, not requiring a subshell.

Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
---
 t/t0024-crlf-archive.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/t/t0024-crlf-archive.sh b/t/t0024-crlf-archive.sh
index fa4da7c2b3..a7f4de4a43 100755
--- a/t/t0024-crlf-archive.sh
+++ b/t/t0024-crlf-archive.sh
@@ -20,7 +20,8 @@ test_expect_success setup '
 test_expect_success 'tar archive' '
 
 	git archive --format=tar HEAD >test.tar &&
-	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
+	mkdir untarred &&
+	"$TAR" xf test.tar -C untarred &&
 
 	test_cmp sample untarred/sample
 
@@ -30,7 +31,11 @@ test_expect_success UNZIP 'zip archive' '
 
 	git archive --format=zip HEAD >test.zip &&
 
-	( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&
+	mkdir unzipped &&
+	(
+		cd unzipped &&
+		"$GIT_UNZIP" ../test.zip
+	) &&
 
 	test_cmp sample unzipped/sample
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] t0024: refactor to have single command per line
  2024-01-18 23:18   ` Junio C Hamano
  2024-01-19  0:57     ` Ghanshyam Thakkar
@ 2024-01-19  3:40     ` Ghanshyam Thakkar
  1 sibling, 0 replies; 10+ messages in thread
From: Ghanshyam Thakkar @ 2024-01-19  3:40 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Fri Jan 19, 2024 at 4:48 AM IST, Junio C Hamano wrote:
> Ghanshyam Thakkar <shyamthakkar001@gmail.com> writes:
> > -	( mkdir untarred && cd untarred && "$TAR" -xf ../test.tar ) &&
> > +	mkdir untarred &&
> > +	(
> > +		cd untarred &&
> > +		"$TAR" -xf ../test.tar
> > +	) &&
>
> I think we assume "$TAR" is modern enough to know about the "C"
> option (see t/t5004-archive-corner-cases.sh), so
>
> 	mkdir untarred &&
> 	"$TAR" Cxf untarred test.tar
>
> without even a subshell may be sufficient.

I suppose '"$TAR" Cxf untarred test.tar' is not a valid syntax on
alpine, since it was breaking CI.

Instead changed it to '"$TAR" xf test.tar -C untarred' in v3, which
is how it's written in t/t5004-archive-corner-cases.sh, which passes
CI.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-01-19  3:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-18 21:53 [PATCH 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
2024-01-18 21:53 ` [PATCH 2/2] t0024: refactor to have single command per line Ghanshyam Thakkar
2024-01-18 23:18   ` Junio C Hamano
2024-01-19  0:57     ` Ghanshyam Thakkar
2024-01-19  3:40     ` Ghanshyam Thakkar
2024-01-18 23:04 ` [PATCH 1/2] t0024: avoid losing exit status to pipes Junio C Hamano
2024-01-19  1:36 ` [PATCH v2 " Ghanshyam Thakkar
2024-01-19  1:36   ` [PATCH v2 2/2] t0024: style fix Ghanshyam Thakkar
2024-01-19  3:33 ` [PATCH v3 1/2] t0024: avoid losing exit status to pipes Ghanshyam Thakkar
2024-01-19  3:33 ` [PATCH v3 2/2] t0024: style fix Ghanshyam Thakkar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).