Re: [ANNOUNCE] Git v2.16.0-rc1
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 10, 2018, 17:40 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1801101838360.31@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
- In-Reply-To
- <xmqq608a37ve.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Tue, 9 Jan 2018, Junio C Hamano wrote:
Show 64 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
> > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> >
> >> diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl
> >> index f1678851de9..470107248eb 100644
> >> --- a/t/t0021/rot13-filter.pl
> >> +++ b/t/t0021/rot13-filter.pl
> >> @@ -31,7 +31,22 @@
> >> #
> >>
> >> use 5.008;
> >> -use lib (split(/:/, $ENV{GITPERLLIB}));
> >> +sub gitperllib {
> >> +...
> >> + if ($ENV{GITPERLLIB} =~ /;/) {
> >> + return split(/;/, $ENV{GITPERLLIB});
> >> + }
> >> + return split(/:/, $ENV{GITPERLLIB});
> >> +}
> >
> > This cannot be the whole story for a few reasons.
> >
> > - In t/test-lib.sh we see this:
> >
> > GITPERLLIB="$GIT_BUILD_DIR"/perl/blib/lib:"$GIT_BUILD_DIR"/perl/blib/arch/auto/Git
> > export GITPERLLIB
> >
> > If this part wants to split with ';', then the joining needs to
> > be done with ';' to match, no?
> >
> > - In addition to t0021, there are similar split with colon in 0202,
> > 9000 and 9700, yet I am getting the feeling that you observed the
> > issue only in0021, to which I do not think of a good explanation
> > why.
>
> This somehow vaguely rang a bell, and I dug this thing up from the
> archive, [*1*] which ended like so:
>
> >> In our C code, we have "#define PATH_SEP ';'", and encourage
> >> our code to be careful and use it. Is there something
> >> similar for Perl scripts, I wonder.
> >>
> > We probably should find a better solution to allow this to
> > work with windows style paths...? I know that python provides
> > os.pathsep, but I haven't seen an equivalent for perl yet.
> >
> > The Env[1] core modules suggests using
> > $Config::Config{path_sep}[2].. maybe we should be using this?
>
> I was testing this recently on the Perl included with Git for
> Windows and it returns : for the path separator even though it's
> on Windows, so I don't think that would work. The Perl in Git
> for Windows seems to want UNIX-style inputs (something Dscho
> seemed to allude to in his response earlier.). I'm not sure why
> it's that way, but he probably knows.
>
> Your initial response in this thread made it sound as if -rc1 is the
> only thing that changed, but looking at the differences between -rc0
> and -rc1, which does not touch t0021 or any other instances of
> "split(/:/, $ENV{GITPERLLIB})", I am wondering if it is possible
> that perhaps the way Perl is built for GfW has been changed recently
> and we can safely and sanely use $Config::Config{path_sep} (contrary
> to what was found in late Oct in the message quoted above) now?No, the only thing that changed was the introduction of Git::Packet (and t0021/*.perl uses that). And that Perl module is not yet installed.
Granted, we tested incorrect versions of those modules, but this late in the -rc phase, I would prefer to be cautious. People might be relying on the current bug.
OTOH I might be way too pessimistic and we should essentially replicate that `sub gitperllib` trick in *all* of our Perl scripts.
What do you think?
Ciao, Dscho