如何升级git-svn使用的SVN版本
我一直在使用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上运行这个版本
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
目录应该是这个样子:
(这可能是更容易只是GITPERLLIB设置为$HOME/local/lib/perl5
和移动Git.pm出site_perl
)
显然我没有perl的大师,所以可能有更好的方法来完成这一切。但是,我可以确认它的工作原理:git-svn version 1.7.3.1 (svn 1.6.12)
我能够以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
如果您可以使用MacPorts,则简单的port install git-core +svn
将安装git本身和svn客户端和库的最新版本。
$ git svn --version
git-svn version 1.7.3.2 (svn 1.6.15)
注意:启动git 1.7.8(2012年10月下旬),git svn
将与SVN1.7一起使用。
请参阅 “[ANNOUNCE] Git v1.8.0-rc3 ”:
“
git svn
” 已经更新SVN 1.7工作。
之一更改由混帐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。
对我来说,以下步骤序列工作:
- 获得Apache Subversion源从源使用使
- 构建颠覆,然后执行:
- 化妆痛饮-PL
- 使用make install安装subversion,然后执行:
- 使安装,痛饮-PL
- 获取的git源
- 构建混帐像往常一样
参考:http://www.linuxfromscratch.org/blfs/view/cvs/general/subversion.html
你怎么安装SVN和git?你自己做了这些吗? – 2010-12-03 00:03:24
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