我一直在使用git-svn并喜欢它。但我们只是将我们的仓库转换为需要1.5.0或更高版本的svn版本。目前,我有这个:
triedsound-lm:android holmesj$ git svn --version
git-svn version 1.7.3.1 (svn 1.4.4)
triedsound-lm:android holmesj$ svn --version
svn, version 1.6.15 (r1038135)
compiled Nov 29 2010, 13:32:56
因此,当我尝试dcommit时,我收到此错误消息:
...
...
A repository hook failed: Commit blocked by start-commit hook (exit code 1) with output:
Only clients >= 1.5.0 may commit to this repository.
For upgrade instructions please see:
http://twiki.corp.yahoo.com/view/Subversion/SubversionFAQ#Upgrade
at /usr/local/git/libexec/git-core/git-svn line 573
这真的很糟糕,我不想停止使用git-svn。那真是太糟糕了。如果我只是将我的所有git提交归结为一个大的svn提交,那就太糟糕了。
任何人都知道如何更新git-svn使用的svn版本?我在OSX 10.5上运行它
答案 0 :(得分:10)
git-svn是用perl编写的,并使用SVN :: Core模块,因此它使用模块指向的任何版本的svn库。为了让git-svn使用更新版本的svn,你可以更新系统的SVN :: Core模块... sudo cpan SVN::Core
就足够了。或者,您可以替换/ usr / lib中的svn库。
我无法执行上述任何一项操作,因为我的工作机器上没有管理员权限。这就是我为克服这一点所做的努力。如果采用这种方式,您可能需要调整下面的一些路径。我使用~/local/lib
,~/local/bin
等。
设置以下shell变量:
export PERL_MB_OPT="--install_base $HOME/local"
export PERL_MM_OPT="INSTALL_BASE=$HOME/local"
然后运行cpan SVN::Core
。在某些时候它会询问“你想传递任何参数来配置吗?”,我回答--libdir=/Users/sean/local/lib --prefix=/Users/sean/local
。这将构建一个svn库的新副本,以及它的perl绑定,它将以~/local/lib/perl5/
结束。
现在,在我安装的git(来自源代码)中,git-svn执行此操作:
use lib (split(/:/, $ENV{GITPERLLIB} || "/Users/sean/local/lib/perl5/site_perl"));
所以我将新安装的SVN模块从~/local/lib/perl5/
移到了~/local/lib/perl5/site_perl
。搬迁有几件事情;您的lib/perl5
目录应如下所示:
(将GITPERLLIB设置为$HOME/local/lib/perl5
并将Git.pm移出site_perl
可能会更容易)
我显然不是perl guru,所以可能有更好的方法来实现这一切。但是,我可以确认它有效:git-svn version 1.7.3.1 (svn 1.6.12)
答案 1 :(得分:2)
如果你可以使用MacPorts,一个简单的port install git-core +svn
将安装git本身和svn客户端和库的最新版本。
$ git svn --version
git-svn version 1.7.3.2 (svn 1.6.15)
答案 2 :(得分:0)
注意:启动git 1。7。8(2012年10月下旬),git svn
将适用于SVN1.7。
请参阅“[ANNOUNCE] Git v1.8.0-rc3”:
“
git svn
”已更新,可与SVN 1.7配合使用。
答案 3 :(得分:0)
更改git-svn使用的svn版本的一种方法是将PERL5LIB环境变量指向您在系统上选择的svn安装的相应svn-perl。这可以通过在bash配置文件中添加以下行来完成:
export PERL5LIB=/usr/local/lib/svn-perl
路径将根据svn-perl绑定的安装目录而有所不同。例如,WanDisco svn客户端默认安装svn-perl绑定,通常在/opt/subversion/lib/svn-perl
下。使用homebrew
,您可以运行以下命令来安装带有perl绑定的svn:
$ brew install subversion --perl
对于旧版本:
$ brew install subversion17 --perl
$ brew install subversion16 --perl
我从here了解了PERL5LIB变量。
答案 4 :(得分:0)
For me, the following sequence of steps worked:
Reference: http://www.linuxfromscratch.org/blfs/view/cvs/general/subversion.html