Browse Source

Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging

This makes the Git perl scripts check $GITPERLLIB instead of
$RUNNING_GIT_TESTS, which makes more sense if you are setting up your shell
environment to use a non-installed Git instance.

It also weeds out the @INC munging from the individual scripts and makes
Makefile add it during the .perl files processing, so that we can change
just a single place when we modify this shared logic. It looks ugly in the
scripts, too. ;-)

And instead of doing arcane things with the @INC array, we just do 'use lib'
instead, which is essentialy the same thing anyway.

I first want to do three separate patches but it turned out that it's quite
a lot neater when bundled together, so I hope it's ok.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Petr Baudis 19 years ago committed by Junio C Hamano
parent
commit
6fcca938b0
  1. 4
      INSTALL
  2. 4
      Makefile
  3. 5
      git-fmt-merge-msg.perl
  4. 5
      git-mv.perl
  5. 5
      t/test-lib.sh

4
INSTALL

@ -39,8 +39,8 @@ Issues of note:


GIT_EXEC_PATH=`pwd` GIT_EXEC_PATH=`pwd`
PATH=`pwd`:$PATH PATH=`pwd`:$PATH
PERL5LIB=`pwd`/perl/blib/lib:`pwd`/perl/blib/arch/auto/Git GITPERLLIB=`pwd`/perl/blib/lib:`pwd`/perl/blib/arch/auto/Git
export GIT_EXEC_PATH PATH PERL5LIB export GIT_EXEC_PATH PATH GITPERLLIB


- Git is reasonably self-sufficient, but does depend on a few external - Git is reasonably self-sufficient, but does depend on a few external
programs and libraries: programs and libraries:

4
Makefile

@ -550,7 +550,9 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/Makefile
$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
rm -f $@ $@+ rm -f $@ $@+
INSTLIBDIR=`$(MAKE) -C perl -s --no-print-directory instlibdir` && \ INSTLIBDIR=`$(MAKE) -C perl -s --no-print-directory instlibdir` && \
sed -e '1s|#!.*perl\(.*\)|#!$(PERL_PATH_SQ)\1|' \ sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|1' \
-e '2i\
use lib (split(/:/, $$ENV{GITPERLLIB} || '\'"$$INSTLIBDIR"\''));' \
-e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \ -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
$@.perl >$@+ $@.perl >$@+

5
git-fmt-merge-msg.perl

@ -5,11 +5,6 @@
# Read .git/FETCH_HEAD and make a human readable merge message # Read .git/FETCH_HEAD and make a human readable merge message
# by grouping branches and tags together to form a single line. # by grouping branches and tags together to form a single line.


BEGIN {
unless (exists $ENV{'RUNNING_GIT_TESTS'}) {
unshift @INC, '@@INSTLIBDIR@@';
}
}
use strict; use strict;
use Git; use Git;
use Error qw(:try); use Error qw(:try);

5
git-mv.perl

@ -6,11 +6,6 @@
# This file is licensed under the GPL v2, or a later version # This file is licensed under the GPL v2, or a later version
# at the discretion of Linus Torvalds. # at the discretion of Linus Torvalds.


BEGIN {
unless (exists $ENV{'RUNNING_GIT_TESTS'}) {
unshift @INC, '@@INSTLIBDIR@@';
}
}
use warnings; use warnings;
use strict; use strict;
use Getopt::Std; use Getopt::Std;

5
t/test-lib.sh

@ -206,9 +206,8 @@ PYTHON=`sed -e '1{
PYTHONPATH=$(pwd)/../compat PYTHONPATH=$(pwd)/../compat
export PYTHONPATH export PYTHONPATH
} }
RUNNING_GIT_TESTS=YesWeAre GITPERLLIB=$(pwd)/../perl/blib/lib:$(pwd)/../perl/blib/arch/auto/Git
PERL5LIB=$(pwd)/../perl/blib/lib:$(pwd)/../perl/blib/arch/auto/Git export GITPERLLIB
export PERL5LIB RUNNING_GIT_TESTS
test -d ../templates/blt || { test -d ../templates/blt || {
error "You haven't built things yet, have you?" error "You haven't built things yet, have you?"
} }

Loading…
Cancel
Save