threads / discuss / 32956

running git from non-standard location on Mac

Subject: running git from non-standard location on Mac

## tl;dr

4 messages between Feb 21, 2013 and Feb 21, 2013.

replies: 3people: 3as markdown or json

James French· Feb 21, 2013, 09:48 UTC · lore
Hi,
I wonder if someone could help me. I installed git on a Mac and then I copied the install somewhere else (which I do want to do, trust me).  I'm now having trouble with git svn. I'm getting "Can't locate Git/SVN.pm in @INC..."
I've added the bin folder to PATH. What else do I need to do? Do I need to use -exec-path=/MyPathToGit/libexec/git-core? How do I change the content of @INC?
Apologies if this is a dumb question, I'm not much of a unix man.

Cheers, James

Konstantin Khomoutov· Feb 21, 2013, 10:35 UTC · re: James French · lore

Re: running git from non-standard location on Mac

On Thu, 21 Feb 2013 09:48:36 +0000 James French <James.French@naturalmotion.com> wrote:

Show 10 quoted lines
> I wonder if someone could help me. I installed git on a Mac and then
> I copied the install somewhere else (which I do want to do, trust
> me).  I'm now having trouble with git svn. I'm getting "Can't locate
> Git/SVN.pm in @INC..."
> 
> I've added the bin folder to PATH. What else do I need to do? Do I
> need to use -exec-path=/MyPathToGit/libexec/git-core? How do I change
> the content of @INC?
> 
> Apologies if this is a dumb question, I'm not much of a unix man.

`git svn` is implemented in Perl (which is supposedly bundled with your Git package, but I'm not sure), and "SVN.pm" is a Perl module (a library written in Perl, ".pm" stands for "Perl Module").

@INC is an internal variable used by Perl to locate its modules. Its contents is partially inferred from the Perl's installation location and partially from the environment.

This [1] should help you get started with affecting @INC.
1. http://stackoverflow.com/a/2526809/720999
Matthieu Moy· Feb 21, 2013, 10:53 UTC · re: Konstantin Khomoutov · lore

Re: running git from non-standard location on Mac

Konstantin Khomoutov <flatworm@users.sourceforge.net> writes:
> This [1] should help you get started with affecting @INC.

In the particular case of Git, the Makefile hardcodes the path to the Git library. The script git-svn in Git's exec-path should start with:

use lib (split(/:/, $ENV{GITPERLLIB} || "/some/hardcoded/path/to/perl/5.10.1"));

Setting the $GITPERLLIB environment variable or editing the script to let the hardcoded path point to the place where the Git.pm file is should do it.

But I still have to wonder why you didn't build Git with the right paths in the first place.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
James French· Feb 21, 2013, 11:48 UTC · re: Konstantin Khomoutov · lore

RE: running git from non-standard location on Mac

-----Original Message-----
From: Konstantin Khomoutov [mailto:flatworm@users.sourceforge.net] 
Sent: 21 February 2013 10:35
To: James French
Cc: git@vger.kernel.org
Subject: Re: running git from non-standard location on Mac

On Thu, 21 Feb 2013 09:48:36 +0000 James French <James.French@naturalmotion.com> wrote:

Show 10 quoted lines
> I wonder if someone could help me. I installed git on a Mac and then I 
> copied the install somewhere else (which I do want to do, trust me).  
> I'm now having trouble with git svn. I'm getting "Can't locate 
> Git/SVN.pm in @INC..."
> 
> I've added the bin folder to PATH. What else do I need to do? Do I 
> need to use -exec-path=/MyPathToGit/libexec/git-core? How do I change 
> the content of @INC?
> 
> Apologies if this is a dumb question, I'm not much of a unix man.
`git svn` is implemented in Perl (which is supposedly bundled with your Git package, but I'm not sure), and "SVN.pm" is a Perl module (a library written in Perl, ".pm" stands for "Perl Module").

@INC is an internal variable used by Perl to locate its modules. Its contents is partially inferred from the Perl's installation location and partially from the environment.

This [1] should help you get started with affecting @INC.
1. http://stackoverflow.com/a/2526809/720999
Thanks for the help guys. I got it working using --exec-path and PERL5LIB environment variable. But Matthieu is right, I should build it from source to do it properly.

← back to recent threads