2010-12-02 150 views
12

我一直在使用git-svn并喜欢它。但是我们只是将我们的repo换成了需要1.5.0或更高版本的svn版本。目前,我有这样的:如何升级git-svn使用的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

你怎么安装SVN和git?你自己做了这些吗? – 2010-12-03 00:03:24

+0

svn我保持它的容易和安装从http://subversion.apache.org/packages.html#osx git我从git-scm.org二进制安装,然后通过自制1.7.3.2发布。 我删除了/ usr/bin/svn并将其链接到/ opt/subversion/bin/svn中的svn – holmes 2010-12-03 01:15:27

回答

9

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的(从源代码),混帐SVN做到这一点:

use lib (split(/:/, $ENV{GITPERLLIB} || "/Users/sean/local/lib/perl5/site_perl")); 

所以,我提出我的新安装的SVN模块从~/local/lib/perl5/~/local/lib/perl5/site_perl。有几件事要搬迁;您lib/perl5目录应该是这个样子:

alt text

(这可能是更容易只是GITPERLLIB设置为$HOME/local/lib/perl5和移动Git.pm出site_perl

显然我没有perl的大师,所以可能有更好的方法来完成这一切。但是,我可以确认它的工作原理:git-svn version 1.7.3.1 (svn 1.6.12)

+0

我能够以root身份运行,所以`sudo cpan SVN :: Core`运行。这绝对是抓住Alien-SVN-1.6.12.0,看起来像是成功安装它。但是当我运行`git svn --version`时,它仍然链接到1.4.4。 任何想法,我应该看看,以确保新的SVN ::核心安装在正确的位置。 perl – holmes 2010-12-03 18:12:35

2

如果您可以使用MacPorts,则简单的port install git-core +svn将安装git本身和svn客户端和库的最新版本。

$ git svn --version 
git-svn version 1.7.3.2 (svn 1.6.15) 
0

注意:启动git 1.7.8(2012年10月下旬),git svn将与SVN1.7一起使用。

请参阅 “[ANNOUNCE] Git v1.8.0-rc3 ”:

git svn” 已经更新SVN 1.7工作。

0

之一更改由混帐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 

我了解PERL5LIB变量从here