git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] t: use configured TAR instead of tar
@ 2021-05-22  6:28 Đoàn Trần Công Danh
  2021-05-22  6:46 ` Junio C Hamano
  2021-05-22  7:10 ` [PATCH v2] " Đoàn Trần Công Danh
  0 siblings, 2 replies; 4+ messages in thread
From: Đoàn Trần Công Danh @ 2021-05-22  6:28 UTC (permalink / raw)
  To: git; +Cc: Đoàn Trần Công Danh

Despite that tar is available everywhere, it's not required by POSIX.
And, we're allow users to specify which tar they want to use in Makefile
knobs, and we prefer GNU tar in autotools script.

In our testsuite, 7 out of 9 tar-required-tests use "$TAR", the other
two use "tar".

Let's change the remaining two tests to "$TAR".

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---

 I found this when trying to remove tar from a chroot that used to test Git,
 such chroot has bsdtar, so I tried to set "TAR = bsdtar" in config.mak

 t/t3513-revert-submodule.sh | 4 ++--
 t/t6041-bisect-submodule.sh | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh
index 74cd96e582..8bfe3ed246 100755
--- a/t/t3513-revert-submodule.sh
+++ b/t/t3513-revert-submodule.sh
@@ -14,7 +14,7 @@ test_description='revert can handle submodules'
 git_revert () {
 	git status -su >expect &&
 	ls -1pR * >>expect &&
-	tar cf "$TRASH_DIRECTORY/tmp.tar" * &&
+	"$TAR" cf "$TRASH_DIRECTORY/tmp.tar" * &&
 	may_only_be_test_must_fail "$2" &&
 	$2 git checkout "$1" &&
 	if test -n "$2"
@@ -23,7 +23,7 @@ git_revert () {
 	fi &&
 	git revert HEAD &&
 	rm -rf * &&
-	tar xf "$TRASH_DIRECTORY/tmp.tar" &&
+	"$TAR" xf "$TRASH_DIRECTORY/tmp.tar" &&
 	git status -su >actual &&
 	ls -1pR * >>actual &&
 	test_cmp expect actual &&
diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh
index df1eff0fb8..82013fc903 100755
--- a/t/t6041-bisect-submodule.sh
+++ b/t/t6041-bisect-submodule.sh
@@ -8,7 +8,7 @@ test_description='bisect can handle submodules'
 git_bisect () {
 	git status -su >expect &&
 	ls -1pR * >>expect &&
-	tar cf "$TRASH_DIRECTORY/tmp.tar" * &&
+	"$TAR" cf "$TRASH_DIRECTORY/tmp.tar" * &&
 	GOOD=$(git rev-parse --verify HEAD) &&
 	may_only_be_test_must_fail "$2" &&
 	$2 git checkout "$1" &&
@@ -25,7 +25,7 @@ git_bisect () {
 	git bisect start &&
 	git bisect good $GOOD &&
 	rm -rf * &&
-	tar xf "$TRASH_DIRECTORY/tmp.tar" &&
+	"$TAR" xf "$TRASH_DIRECTORY/tmp.tar" &&
 	git status -su >actual &&
 	ls -1pR * >>actual &&
 	test_cmp expect actual &&
-- 
2.32.0.rc0.32.g107691cb07


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

* Re: [PATCH] t: use configured TAR instead of tar
  2021-05-22  6:28 [PATCH] t: use configured TAR instead of tar Đoàn Trần Công Danh
@ 2021-05-22  6:46 ` Junio C Hamano
  2021-05-22 18:58   ` brian m. carlson
  2021-05-22  7:10 ` [PATCH v2] " Đoàn Trần Công Danh
  1 sibling, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2021-05-22  6:46 UTC (permalink / raw)
  To: Đoàn Trần Công Danh; +Cc: git

Đoàn Trần Công Danh  <congdanhqx@gmail.com> writes:

> Despite that tar is available everywhere, it's not required by POSIX.
> And, we're allow users to specify which tar they want to use in Makefile

s/we're/we/;

> knobs, and we prefer GNU tar in autotools script.

The last part I didn't know about---it is sad if autotools require
use of gtar (but since use of autoconf and autotools is not required
to build Git, I do not deeply care ;-)).

> In our testsuite, 7 out of 9 tar-required-tests use "$TAR", the other
> two use "tar".
>
> Let's change the remaining two tests to "$TAR".

Nice.

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

* [PATCH v2] t: use configured TAR instead of tar
  2021-05-22  6:28 [PATCH] t: use configured TAR instead of tar Đoàn Trần Công Danh
  2021-05-22  6:46 ` Junio C Hamano
@ 2021-05-22  7:10 ` Đoàn Trần Công Danh
  1 sibling, 0 replies; 4+ messages in thread
From: Đoàn Trần Công Danh @ 2021-05-22  7:10 UTC (permalink / raw)
  To: git; +Cc: Đoàn Trần Công Danh, Junio C Hamano

Despite that tar is available everywhere, it's not required by POSIX.

In our build system, users are allowed to specify which tar to be used
in Makefile knobs. Furthermore, GNU tar (gtar) is prefered when autotools
is being used.

In our testsuite, 7 out of 9 tar-required-tests use "$TAR", the other
two use "tar".

Let's change the remaining two tests to "$TAR".

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---

>> knobs, and we prefer GNU tar in autotools script.
>
> The last part I didn't know about---it is sad if autotools require
> use of gtar (but since use of autoconf and autotools is not required
> to build Git, I do not deeply care ;-)).

I do not care, either. Just want to add more data points for this change.

I've made a grammar error with v1, and I think two "and" in a sentence is not
good enough. Let's take this version instead.

Range-diff against v1:
1:  3a8ba467fc ! 1:  724a1a7a77 t: use configured TAR instead of tar
    @@ Commit message
         t: use configured TAR instead of tar
     
         Despite that tar is available everywhere, it's not required by POSIX.
    -    And, we're allow users to specify which tar they want to use in Makefile
    -    knobs, and we prefer GNU tar in autotools script.
    +
    +    In our build system, users are allowed to specify which tar to be used
    +    in Makefile knobs. Furthermore, GNU tar (gtar) is prefered when autotools
    +    is being used.
     
         In our testsuite, 7 out of 9 tar-required-tests use "$TAR", the other
         two use "tar".

 t/t3513-revert-submodule.sh | 4 ++--
 t/t6041-bisect-submodule.sh | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh
index 74cd96e582..8bfe3ed246 100755
--- a/t/t3513-revert-submodule.sh
+++ b/t/t3513-revert-submodule.sh
@@ -14,7 +14,7 @@ test_description='revert can handle submodules'
 git_revert () {
 	git status -su >expect &&
 	ls -1pR * >>expect &&
-	tar cf "$TRASH_DIRECTORY/tmp.tar" * &&
+	"$TAR" cf "$TRASH_DIRECTORY/tmp.tar" * &&
 	may_only_be_test_must_fail "$2" &&
 	$2 git checkout "$1" &&
 	if test -n "$2"
@@ -23,7 +23,7 @@ git_revert () {
 	fi &&
 	git revert HEAD &&
 	rm -rf * &&
-	tar xf "$TRASH_DIRECTORY/tmp.tar" &&
+	"$TAR" xf "$TRASH_DIRECTORY/tmp.tar" &&
 	git status -su >actual &&
 	ls -1pR * >>actual &&
 	test_cmp expect actual &&
diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh
index df1eff0fb8..82013fc903 100755
--- a/t/t6041-bisect-submodule.sh
+++ b/t/t6041-bisect-submodule.sh
@@ -8,7 +8,7 @@ test_description='bisect can handle submodules'
 git_bisect () {
 	git status -su >expect &&
 	ls -1pR * >>expect &&
-	tar cf "$TRASH_DIRECTORY/tmp.tar" * &&
+	"$TAR" cf "$TRASH_DIRECTORY/tmp.tar" * &&
 	GOOD=$(git rev-parse --verify HEAD) &&
 	may_only_be_test_must_fail "$2" &&
 	$2 git checkout "$1" &&
@@ -25,7 +25,7 @@ git_bisect () {
 	git bisect start &&
 	git bisect good $GOOD &&
 	rm -rf * &&
-	tar xf "$TRASH_DIRECTORY/tmp.tar" &&
+	"$TAR" xf "$TRASH_DIRECTORY/tmp.tar" &&
 	git status -su >actual &&
 	ls -1pR * >>actual &&
 	test_cmp expect actual &&
-- 
2.32.0.rc0.32.g107691cb07


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

* Re: [PATCH] t: use configured TAR instead of tar
  2021-05-22  6:46 ` Junio C Hamano
@ 2021-05-22 18:58   ` brian m. carlson
  0 siblings, 0 replies; 4+ messages in thread
From: brian m. carlson @ 2021-05-22 18:58 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Đoàn Trần Công Danh, git

[-- Attachment #1: Type: text/plain, Size: 947 bytes --]

On 2021-05-22 at 06:46:45, Junio C Hamano wrote:
> Đoàn Trần Công Danh  <congdanhqx@gmail.com> writes:
> 
> > Despite that tar is available everywhere, it's not required by POSIX.
> > And, we're allow users to specify which tar they want to use in Makefile
> 
> s/we're/we/;
> 
> > knobs, and we prefer GNU tar in autotools script.
> 
> The last part I didn't know about---it is sad if autotools require
> use of gtar (but since use of autoconf and autotools is not required
> to build Git, I do not deeply care ;-)).

I don't believe we do require it.  macOS ships bsdtar (that is, the one
from libarchive) and to the best of my knowledge, everything works fine
there.

I suspect the reason that gtar is preferred is because on some systems,
the tar(1) command is relatively incapable and doesn't support things
like POSIX tar archives or pax extensions.
-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

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

end of thread, other threads:[~2021-05-22 18:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-22  6:28 [PATCH] t: use configured TAR instead of tar Đoàn Trần Công Danh
2021-05-22  6:46 ` Junio C Hamano
2021-05-22 18:58   ` brian m. carlson
2021-05-22  7:10 ` [PATCH v2] " Đoàn Trần Công Danh

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