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
List information: http://vger.kernel.org/majordomo-info.html
* 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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).