Petr Baudis [off-list ref] writes:
Dear diary, on Sun, Jul 02, 2006 at 11:33:47PM CEST, I got a letter
where Junio C Hamano [off-list ref] said that...
quoted
I tried this:
0. check out the branch that has the Perly git ("pu"). build
and install normally to have a perfectly working version
accessible on your usual $PATH.
1. apply the patch [1] below to make it use "use lib" instead of
"unshift".
2. break perl/Git.pm being built to pretend we introduced a bug
in the work in progress by applying the patch [2] below.
3. without installing the broken Git.pm, run "make test", and
see a test that uses "git pull" and needs to create a true
merge succeed. It tells me that everything including
perl/Git.pm is GOOD, and I'd find the breakage only after
installing and running the test again.
So, just to clarify and make sure we understand each other perfectly,
you claim that when skipping (1), (3) _does_ FAIL for you? Because it
really doesn't for me and I can't see how could it ever fail without
installing the broken version first.
Gaah. You are right.
PERL5LIB does not seem to just do a push (and that was I thought
why unshift was a way to defeat it) but do something more evil.
With this:
diff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl
index 1b23fa1..5d1ae44 100755
--- a/git-fmt-merge-msg.perl
+++ b/git-fmt-merge-msg.perl
@@ -6,9 +6,11 @@ # Read .git/FETCH_HEAD and make a human
# by grouping branches and tags together to form a single line.
BEGIN { unshift @INC, '@@INSTLIBDIR@@'; }
+use lib '@@INSTLIBDIR@@';
use strict;
use Git;
use Error qw(:try);
+print STDERR "\@INC is @INC\n";
my $repo = Git->repository();
It spits this out:
@INC is /home/junio/git-pu/lib/perl/5.8.8 /opt/git/git.git/t/../perl/blib/lib /opt/git/git.git/t/../perl/blib/arch/auto/Git /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .
So "BEGIN { unshift }" is JUST AS WRONG as "use lib".
I thought we killed this showstopper and was hoping now the
series is mergeable to "next" but apparently not yet X-<.
Sigh....