From: Pete Wyckoff <pw@padd.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 06/21] git p4 test: use client_view in t9806
Date: Sat, 26 Jan 2013 20:51:35 -0500 [thread overview]
Message-ID: <20130127015135.GA29157@padd.com> (raw)
In-Reply-To: <7v4nmiklbt.fsf@alter.siamese.dyndns.org>
Yes, this really is four months later. Somehow I forgot all
about this series.
gitster@pobox.com wrote on Fri, 28 Sep 2012 12:11 -0700:
> Pete Wyckoff <pw@padd.com> writes:
>
> > Use the standard client_view function from lib-git-p4.sh
> > instead of building one by hand. This requires a bit of
> > rework, using the current value of $P4CLIENT for the client
> > name. It also reorganizes the test to isolate changes to
> > $P4CLIENT and $cli in a subshell.
> >
> > Signed-off-by: Pete Wyckoff <pw@padd.com>
> > ---
> > t/lib-git-p4.sh | 4 ++--
> > t/t9806-git-p4-options.sh | 50 ++++++++++++++++++++++-------------------------
> > 2 files changed, 25 insertions(+), 29 deletions(-)
> >
> > diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
> > index 890ee60..d558dd0 100644
> > --- a/t/lib-git-p4.sh
> > +++ b/t/lib-git-p4.sh
> > @@ -116,8 +116,8 @@ marshal_dump() {
> > client_view() {
> > (
> > cat <<-EOF &&
> > - Client: client
> > - Description: client
> > + Client: $P4CLIENT
> > + Description: $P4CLIENT
> > Root: $cli
> > View:
> > EOF
> > diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh
> > index fa40cc8..37ca30a 100755
> > --- a/t/t9806-git-p4-options.sh
> > +++ b/t/t9806-git-p4-options.sh
> > @@ -126,37 +126,33 @@ test_expect_success 'clone --use-client-spec' '
> > exec >/dev/null &&
> > test_must_fail git p4 clone --dest="$git" --use-client-spec
> > ) &&
> > - cli2=$(test-path-utils real_path "$TRASH_DIRECTORY/cli2") &&
> > + # build a different client
> > + cli2="$TRASH_DIRECTORY/cli2" &&
> > mkdir -p "$cli2" &&
> > test_when_finished "rmdir \"$cli2\"" &&
> > test_when_finished cleanup_git &&
> > ...
> > - # same thing again, this time with variable instead of option
> > (
> > ...
> > + # group P4CLIENT and cli changes in a sub-shell
> > + P4CLIENT=client2 &&
> > + cli="$cli2" &&
> > + client_view "//depot/sub/... //client2/bus/..." &&
> > + git p4 clone --dest="$git" --use-client-spec //depot/... &&
> > + (
> > + cd "$git" &&
> > + test_path_is_file bus/dir/f4 &&
> > + test_path_is_missing file1
> > + ) &&
> > + cleanup_git &&
>
> Hmm, the use of "test-path-utils real_path" to form cli2 in the
> original was not necessary at all?
Thanks, I will make this removal more explicit, putting it in
with 8/21 where it belongs, with explanation.
> > + # same thing again, this time with variable instead of option
> > + (
> > + cd "$git" &&
> > + git init &&
> > + git config git-p4.useClientSpec true &&
> > + git p4 sync //depot/... &&
> > + git checkout -b master p4/master &&
> > + test_path_is_file bus/dir/f4 &&
> > + test_path_is_missing file1
> > + )
>
> Do you need a separate sub-shell inside a sub-shell we are already
> in that you called client_view in?
>
> > )
> > '
The first subshell is to hide P4CLIENT and cli variable changes
from the rest of the tests.
The second is to keep the "cd $git" from changing behavior of the
following "cleanup_git" call. That does "rm -rf $git" which
would fail on some file systems if cwd is still in there. With
just one subshell it would look like:
(
P4CLIENT=client2 &&
git p4 clone .. &&
cd "$git" &&
... do test
cd "$TRASH_DIRECTORY" &&
cleanup_git &&
cd "$git" &&
... more test
)
It's a bit easier to understand with an extra level of shell,
and sticks to the pattern used in the rest of the t98*.
-- Pete
next prev parent reply other threads:[~2013-01-27 1:52 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-28 12:04 [PATCH 00/21] git p4: work on cygwin Pete Wyckoff
2012-09-28 12:04 ` [PATCH 01/21] git p4: temp branch name should use / even on windows Pete Wyckoff
2012-09-28 12:04 ` [PATCH 02/21] git p4: remove unused imports Pete Wyckoff
2012-09-28 12:04 ` [PATCH 03/21] git p4: generate better error message for bad depot path Pete Wyckoff
2012-09-28 18:58 ` Junio C Hamano
2012-09-28 12:04 ` [PATCH 04/21] git p4: fix error message when "describe -s" fails Pete Wyckoff
2012-09-28 19:02 ` Junio C Hamano
2012-09-28 12:04 ` [PATCH 05/21] git p4 test: use client_view to build the initial client Pete Wyckoff
2012-09-28 19:06 ` Junio C Hamano
2012-09-28 12:04 ` [PATCH 06/21] git p4 test: use client_view in t9806 Pete Wyckoff
2012-09-28 19:11 ` Junio C Hamano
2013-01-27 1:51 ` Pete Wyckoff [this message]
2012-09-28 12:04 ` [PATCH 07/21] git p4 test: start p4d inside its db dir Pete Wyckoff
2012-09-28 12:04 ` [PATCH 08/21] git p4 test: translate windows paths for cygwin Pete Wyckoff
2012-09-28 12:04 ` [PATCH 09/21] git p4: remove unreachable windows \r\n conversion code Pete Wyckoff
2012-09-28 12:04 ` [PATCH 10/21] git p4: scrub crlf for utf16 files on windows Pete Wyckoff
2012-09-28 12:04 ` [PATCH 11/21] git p4 test: newline handling Pete Wyckoff
2012-09-28 12:04 ` [PATCH 12/21] git p4 test: use LineEnd unix in windows tests too Pete Wyckoff
2012-09-28 12:04 ` [PATCH 13/21] git p4 test: avoid wildcard * in windows Pete Wyckoff
2012-09-28 12:04 ` [PATCH 14/21] git p4: cygwin p4 client does not mark read-only Pete Wyckoff
2012-09-28 12:04 ` [PATCH 15/21] git p4 test: disable chmod test for cygwin Pete Wyckoff
2012-09-28 19:33 ` Johannes Sixt
2012-09-28 12:04 ` [PATCH 16/21] git p4: disable read-only attribute before deleting Pete Wyckoff
2012-09-28 12:04 ` [PATCH 17/21] git p4: avoid shell when mapping users Pete Wyckoff
2012-09-28 12:04 ` [PATCH 18/21] git p4: avoid shell when invoking git rev-list Pete Wyckoff
2012-09-28 12:04 ` [PATCH 19/21] git p4: avoid shell when invoking git config --get-all Pete Wyckoff
2012-09-28 12:04 ` [PATCH 20/21] git p4: avoid shell when calling git config Pete Wyckoff
2012-09-28 12:04 ` [PATCH 21/21] git p4: introduce gitConfigBool Pete Wyckoff
2012-09-28 19:17 ` [PATCH 00/21] git p4: work on cygwin Junio C Hamano
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=20130127015135.GA29157@padd.com \
--to=pw@padd.com \
--cc=git@vger.kernel.org \
--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.