git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
@ 2010-08-30 12:00 Ævar Arnfjörð Bjarmason
  2010-08-30 15:57 ` Jonathan Nieder
  0 siblings, 1 reply; 6+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-08-30 12:00 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Carl Worth,
	Ævar Arnfjörð Bjarmason

Change the test_create_repo code added in v1.2.2~6 to use a subshell
instead of keeping track of the old working directory and cd-ing back
when it's done.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/test-lib.sh |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index dc934b8..778ba8d 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -687,14 +687,12 @@ test_when_finished () {
 test_create_repo () {
 	test "$#" = 1 ||
 	error "bug in the test script: not 1 parameter to test-create-repo"
-	owd=`pwd`
 	repo="$1"
 	mkdir -p "$repo"
-	cd "$repo" || error "Cannot setup test environment"
+	(cd "$repo" || error "Cannot setup test environment"
 	"$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
 	error "cannot run git init -- have you built things yet?"
-	mv .git/hooks .git/hooks-disabled
-	cd "$owd"
+	mv .git/hooks .git/hooks-disabled)
 }
 
 test_done () {
-- 
1.7.2.2.518.gf0ba8

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

* Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
  2010-08-30 12:00 [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old Ævar Arnfjörð Bjarmason
@ 2010-08-30 15:57 ` Jonathan Nieder
  2010-08-30 16:01   ` Ævar Arnfjörð Bjarmason
  2010-08-31 17:58   ` Junio C Hamano
  0 siblings, 2 replies; 6+ messages in thread
From: Jonathan Nieder @ 2010-08-30 15:57 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason; +Cc: git, Junio C Hamano, Carl Worth

Ævar Arnfjörð Bjarmason wrote:

> +++ b/t/test-lib.sh
> @@ -687,14 +687,12 @@ test_when_finished () {
>  test_create_repo () {
>  	test "$#" = 1 ||
>  	error "bug in the test script: not 1 parameter to test-create-repo"
> -	owd=`pwd`
>  	repo="$1"
>  	mkdir -p "$repo"
> -	cd "$repo" || error "Cannot setup test environment"
> +	(cd "$repo" || error "Cannot setup test environment"
>  	"$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
>  	error "cannot run git init -- have you built things yet?"
> -	mv .git/hooks .git/hooks-disabled
> -	cd "$owd"
> +	mv .git/hooks .git/hooks-disabled)

Style: why not use

	(
		cd "$repo" ...
		... .git/hooks-disabled
	)

?

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

* Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
  2010-08-30 15:57 ` Jonathan Nieder
@ 2010-08-30 16:01   ` Ævar Arnfjörð Bjarmason
  2010-08-30 16:04     ` Jonathan Nieder
  2010-08-31 17:58   ` Junio C Hamano
  1 sibling, 1 reply; 6+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-08-30 16:01 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: git, Junio C Hamano, Carl Worth

On Mon, Aug 30, 2010 at 15:57, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Ævar Arnfjörð Bjarmason wrote:
>
>> +++ b/t/test-lib.sh
>> @@ -687,14 +687,12 @@ test_when_finished () {
>>  test_create_repo () {
>>       test "$#" = 1 ||
>>       error "bug in the test script: not 1 parameter to test-create-repo"
>> -     owd=`pwd`
>>       repo="$1"
>>       mkdir -p "$repo"
>> -     cd "$repo" || error "Cannot setup test environment"
>> +     (cd "$repo" || error "Cannot setup test environment"
>>       "$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
>>       error "cannot run git init -- have you built things yet?"
>> -     mv .git/hooks .git/hooks-disabled
>> -     cd "$owd"
>> +     mv .git/hooks .git/hooks-disabled)
>
> Style: why not use
>
>        (
>                cd "$repo" ...
>                ... .git/hooks-disabled
>        )
>

I've seen both used and I don't know which is preferred.

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

* Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
  2010-08-30 16:01   ` Ævar Arnfjörð Bjarmason
@ 2010-08-30 16:04     ` Jonathan Nieder
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Nieder @ 2010-08-30 16:04 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason; +Cc: git, Junio C Hamano, Carl Worth

Ævar Arnfjörð Bjarmason wrote:
> On Mon, Aug 30, 2010 at 15:57, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> Ævar Arnfjörð Bjarmason wrote:

>>> -     cd "$repo" || error "Cannot setup test environment"
>>> +     (cd "$repo" || error "Cannot setup test environment"
>>>       "$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
>>>       error "cannot run git init -- have you built things yet?"
>>> -     mv .git/hooks .git/hooks-disabled
>>> -     cd "$owd"
>>> +     mv .git/hooks .git/hooks-disabled)
>>
>> Style: why not use
>>
>>        (
>>                cd "$repo" ...
>>                ... .git/hooks-disabled
>>        )
>>
>
> I've seen both used and I don't know which is preferred.

Okay.  I maintain that the latter is way more readable.  Is there any
advantage to the former?

Whichever the project chooses can be enshrined in
Documentation/CodingGuidelines, of course.

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

* Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
  2010-08-30 15:57 ` Jonathan Nieder
  2010-08-30 16:01   ` Ævar Arnfjörð Bjarmason
@ 2010-08-31 17:58   ` Junio C Hamano
  2010-08-31 18:11     ` Ævar Arnfjörð Bjarmason
  1 sibling, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2010-08-31 17:58 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Ævar Arnfjörð Bjarmason, git, Junio C Hamano,
	Carl Worth

Jonathan Nieder <jrnieder@gmail.com> writes:

> Ævar Arnfjörð Bjarmason wrote:
>
>> +++ b/t/test-lib.sh
>> @@ -687,14 +687,12 @@ test_when_finished () {
>>  test_create_repo () {
>>  	test "$#" = 1 ||
>>  	error "bug in the test script: not 1 parameter to test-create-repo"
>> -	owd=`pwd`
>>  	repo="$1"
>>  	mkdir -p "$repo"
>> -	cd "$repo" || error "Cannot setup test environment"
>> +	(cd "$repo" || error "Cannot setup test environment"
>>  	"$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
>>  	error "cannot run git init -- have you built things yet?"
>> -	mv .git/hooks .git/hooks-disabled
>> -	cd "$owd"
>> +	mv .git/hooks .git/hooks-disabled)
>
> Style: why not use
>
> 	(
> 		cd "$repo" ...
> 		... .git/hooks-disabled
> 	)

That is a sensible suggestion, but what does "error" do?

I think you would need || exit at the end, i.e.

	(
        	... || error "..."
	) || exit

or something.

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

* Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old
  2010-08-31 17:58   ` Junio C Hamano
@ 2010-08-31 18:11     ` Ævar Arnfjörð Bjarmason
  0 siblings, 0 replies; 6+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-08-31 18:11 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Jonathan Nieder, git, Carl Worth

On Tue, Aug 31, 2010 at 17:58, Junio C Hamano <gitster@pobox.com> wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
>
>> Ævar Arnfjörð Bjarmason wrote:
>>
>>> +++ b/t/test-lib.sh
>>> @@ -687,14 +687,12 @@ test_when_finished () {
>>>  test_create_repo () {
>>>      test "$#" = 1 ||
>>>      error "bug in the test script: not 1 parameter to test-create-repo"
>>> -    owd=`pwd`
>>>      repo="$1"
>>>      mkdir -p "$repo"
>>> -    cd "$repo" || error "Cannot setup test environment"
>>> +    (cd "$repo" || error "Cannot setup test environment"
>>>      "$GIT_EXEC_PATH/git-init" "--template=$GIT_BUILD_DIR/templates/blt/" >&3 2>&4 ||
>>>      error "cannot run git init -- have you built things yet?"
>>> -    mv .git/hooks .git/hooks-disabled
>>> -    cd "$owd"
>>> +    mv .git/hooks .git/hooks-disabled)
>>
>> Style: why not use
>>
>>       (
>>               cd "$repo" ...
>>               ... .git/hooks-disabled
>>       )
>
> That is a sensible suggestion, but what does "error" do?
>
> I think you would need || exit at the end, i.e.
>
>        (
>                ... || error "..."
>        ) || exit
>
> or something.

Good catch, yes. error() calls exit so this patch as-is introduces a
logic error.

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

end of thread, other threads:[~2010-08-31 18:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-30 12:00 [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old Ævar Arnfjörð Bjarmason
2010-08-30 15:57 ` Jonathan Nieder
2010-08-30 16:01   ` Ævar Arnfjörð Bjarmason
2010-08-30 16:04     ` Jonathan Nieder
2010-08-31 17:58   ` Junio C Hamano
2010-08-31 18:11     ` Ævar Arnfjörð Bjarmason

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