From: Eric Sunshine <sunshine@sunshineco.com>
To: Lukas Fleischer <lfleischer@lfos.de>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH 4/4] t5509: add basic tests for hideRefs
Date: Mon, 2 Nov 2015 02:30:51 -0500 [thread overview]
Message-ID: <CAPig+cSv1x50ZoXLRAW55v7H6K5828GhvkeptuHd-Jsr+u74qA@mail.gmail.com> (raw)
In-Reply-To: <20151102062449.24971.39537@typhoon>
On Mon, Nov 2, 2015 at 1:25 AM, Lukas Fleischer <lfleischer@lfos.de> wrote:
> On Sun, 01 Nov 2015 at 22:13:51, Eric Sunshine wrote:
>> On Sun, Nov 1, 2015 at 2:34 PM, Lukas Fleischer <lfleischer@lfos.de> wrote:
>> > + cd pushee &&
>> > + test_config transfer.hideRefs refs/tags &&
>> > + GIT_NAMESPACE=namespace git ls-remote "ext::git %s ." >actual &&
>> > + printf "$commit1 refs/heads/master\n" >expected &&
>> > + test_cmp expected actual &&
>> > + cd ..
>>
>> If any of the commands above "cd .." fail, then "cd .." will never be
>> invoked, thus subsequent tests will fail since they won't be executed
>> in the expected directory. The typical way to handle this is to place
>> the "cd foo" and remaining test body in a subshell, and drop "cd .."
>> altogether. When the subshell exits (via success or failure), the
>> working directory will be restored automatically.
>>
>> test_expect_success '...' '
>> (
>> cd pushee &&
>> test_config ... &&
>> ...
>> )
>> '
>> [...]
>
> I chose the `cd ..` approach because test_config does not work from a
> subshell. However, searching the Git log for "test_config", I found
> 1a9a23e (t7610: don't use test_config in a subshell, 2015-09-05) and
> da568b6 (t7800: don't use test_config in a subshell, 2015-09-05) which
> suggest to use the -C switch. The test cases now look like this:
>
> test_expect_success '[...]' '
> test_config -C pushee transfer.hideRefs [...] &&
> (
> cd pushee &&
> [...]
> )
> '
Yes, that can work, although for these simple cases, it might be more
straightforward to use the git -c option to set the config variable
just for the duration of the one git command. For instance:
test_expect_success 'hide namespaced refs with transfer.hideRefs' '
(
cd pushee &&
GIT_NAMESPACE=namespace \
git -c transfer.hideRefs=refs/tags \
ls-remote "ext::git %s ." >actual &&
printf "$commit1\trefs/heads/master\n" >expected &&
test_cmp expected actual &&
)
'
In fact, these test are so simple, that you don't really need the 'cd'
at all. You could just use -C (along with -c):
test_expect_success 'hide namespaced refs with transfer.hideRefs' '
GIT_NAMESPACE=namespace \
git -C pushee -c transfer.hideRefs=refs/tags \
ls-remote "ext::git %s ." >actual &&
printf "$commit1\trefs/heads/master\n" >expected &&
test_cmp expected actual &&
'
prev parent reply other threads:[~2015-11-02 7:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-01 19:34 [PATCH 0/4] Improve hideRefs when used with namespaces Lukas Fleischer
2015-11-01 19:34 ` [PATCH 1/4] Document the semantics of hideRefs " Lukas Fleischer
2015-11-01 19:34 ` [PATCH 2/4] upload-pack: strip refs before calling ref_is_hidden() Lukas Fleischer
2015-11-01 19:34 ` [PATCH 3/4] Add support for matching full refs in hideRefs Lukas Fleischer
2015-11-01 20:42 ` Eric Sunshine
2015-11-02 5:47 ` Lukas Fleischer
2015-11-01 19:34 ` [PATCH 4/4] t5509: add basic tests for hideRefs Lukas Fleischer
2015-11-01 21:13 ` Eric Sunshine
2015-11-02 6:25 ` Lukas Fleischer
2015-11-02 7:30 ` Eric Sunshine [this message]
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=CAPig+cSv1x50ZoXLRAW55v7H6K5828GhvkeptuHd-Jsr+u74qA@mail.gmail.com \
--to=sunshine@sunshineco.com \
--cc=git@vger.kernel.org \
--cc=lfleischer@lfos.de \
/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 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).