From: Junio C Hamano Date: Tue, 31 Aug 2010 17:58:43 GMT Subject: Re: [PATCH] test-lib: use subshell instead of cd $new && .. && cd $old Message-ID: <7vaao2br58.fsf@alter.siamese.dyndns.org> In-Reply-To: <20100830155723.GC3292@burratino> Jonathan Nieder 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.