From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: John Keeping <john@keeping.me.uk>, git@vger.kernel.org
Subject: Re: [BUG] git-submodule has bash-ism?
Date: Wed, 1 Jun 2016 12:37:47 -0400 [thread overview]
Message-ID: <20160601163747.GA10721@sigill.intra.peff.net> (raw)
In-Reply-To: <xmqqk2i8zxtx.fsf@gitster.mtv.corp.google.com>
On Wed, Jun 01, 2016 at 09:19:06AM -0700, Junio C Hamano wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>
> > These are two other offenders.
> >
> > $ git grep '^[ ]local[ ]' \*.sh
> > t/t5500-fetch-pack.sh: local diagport
> > t/t7403-submodule-sync.sh: local root
> >
> > The grep gives many other hits, but those in completion are OK; it
> > is designed to be specific to bash, and whose tests in t9902 is in
> > the same boat. A few more near the end of t/test-lib-functions are
> > only for mingw where bash is the only supported shell at least for
> > running tests.
>
> I think this should be sufficient (extra sets of eyeballs are
> appreciated). For 5500, diagport is not a variable used elsewhere
> and can simply lose the "local". 7403 overrides the "root" variable
> used in the test framework for no good reason (its use is not about
> temporarily relocating where the test repositories are created), but
> they can be made not to clobber the varible by moving them into the
> subshells it already uses.
I peeked at these cases last night when looking at other shell stuff,
and I agree these are the only two spots which need attention (though I
find it interesting that they've been around for a while with nobody
complaining. "local" isn't in POSIX, but it _is_ supported in a lot of
shells. I wonder if we are being overly conservative in disallowing it,
as the impetus here seems to be ancient versions of ksh, which is having
other problems).
Anyway, I am OK with dropping these ones for now. They are not helping
anything, and they are the last two spots.
> diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
> index 9b9bec4..dc305d6 100755
> --- a/t/t5500-fetch-pack.sh
> +++ b/t/t5500-fetch-pack.sh
> @@ -556,7 +556,6 @@ check_prot_path () {
> }
>
> check_prot_host_port_path () {
> - local diagport
> case "$2" in
> *ssh*)
> pp=ssh
This one is particularly egregious because the function sets a bunch of
other variables and does not bother to "local" them.
> diff --git a/t/t7403-submodule-sync.sh b/t/t7403-submodule-sync.sh
> index 79bc135..5503ec0 100755
> --- a/t/t7403-submodule-sync.sh
> +++ b/t/t7403-submodule-sync.sh
> @@ -62,13 +62,13 @@ test_expect_success 'change submodule' '
> '
>
> reset_submodule_urls () {
> - local root
> - root=$(pwd) &&
> (
> + root=$(pwd) &&
> cd super-clone/submodule &&
> git config remote.origin.url "$root/submodule"
> ) &&
> (
> + root=$(pwd) &&
> cd super-clone/submodule/sub-submodule &&
> git config remote.origin.url "$root/submodule"
Hmm. Isn't $root always just going to be $TRASH_DIRECTORY here? There's
only one caller, which appears to pass an argument which is ignored (?).
It's probably worth doing the minimal thing now and leaving further
cleanup for a separate patch, though. Cc-ing John Keeping, the author of
091a6eb0feed, which added this code.
-Peff
next prev parent reply other threads:[~2016-06-01 16:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-31 23:08 [BUG] git-submodule has bash-ism? Junio C Hamano
2016-05-31 23:16 ` Stefan Beller
2016-06-01 0:27 ` [PATCH] submodule: remove bashism from shell script Stefan Beller
2016-06-01 16:13 ` [BUG] git-submodule has bash-ism? Junio C Hamano
2016-06-01 16:19 ` Junio C Hamano
2016-06-01 16:37 ` Jeff King [this message]
2016-06-01 18:31 ` John Keeping
2016-06-01 19:07 ` Jeff King
2016-06-01 19:16 ` John Keeping
2016-06-01 19:45 ` Junio C Hamano
2016-06-01 20:28 ` John Keeping
2016-06-01 20:32 ` Jeff King
2016-06-01 20:48 ` Junio C Hamano
2016-06-01 20:56 ` Junio C Hamano
2016-06-01 20:59 ` Eric Sunshine
2016-06-01 21:08 ` Jeff King
2016-06-01 20:59 ` Stefan Beller
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=20160601163747.GA10721@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=john@keeping.me.uk \
/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).