我需要让git-svn作为一个Subversion v1.5+客户端。

3
我在Mac OSX上使用Homebrew安装的git 1.7。我试图使用git svn与需要Subversion 1.5客户端的Subversion服务器一起工作(通过预提交挂钩强制执行的限制)。
运行git svn --version显示,就git而言,git svn等同于svn v1.4.4。
我无法确定git svn是否是subversion的完全克隆体,因此需要更新以满足subversion v1.5的功能,或者git是否编译了或只是指向底层的某个版本的subversion。
我很难找到其他任何人尝试升级git-svn的版本,我猜测这个客户端版本限制是不寻常的,但我被困住了(公司环境)。
是否有可能让git像svn 1.5一样操作?
2个回答

7

您可以运行svn --version确认版本是否匹配,但是git svn使用Perl SVN绑定实际上与SVN一起工作,因此无论这些绑定在哪里,git svn都会找到它们。 git svn内部没有安装svn。

结论:您需要更新svn安装程序到1.5才能使git svn运行为svn 1.5。


谢谢您的澄清。您知道Perl SVN绑定如何确定要使用哪个SVN吗?我在Mac OSX(10.5)上安装了股票版的Subversion,位于/ usr / bin中,版本为1.4.4;与git svn指向的版本相匹配。然而,我通过Homebrew安装了v1.6.6,位于/usr/local/bin/中。我的路径已配置,并且which svn指向所需的v1.6 brew版本。底层的Perl绑定是否具有其自己的运行时路径解析,或者是在安装git时设置的? - Ben Ward
我会从检查你的LD_LIBRARY_PATH变量开始。可能缺少/usr/local/lib,这应该是与/usr/local/bin/svn匹配的svn库所在的位置。svn可执行文件本身可能已经在内部硬编码了该路径,但是git-svn不知道从哪里获取libs - 它可能会回退到旧版库/usr/lib,这将与/usr/bin/svn相匹配。 - Mike Seplowitz
你可能还需要检查 PERL5LIB - Sean McMillan

3

我正在运行git --version 1.6,当我运行git svn --version时,我得到的是git-svn版本1.6.5。

apple:mac-zfs alex$ git svn --version
git-svn version 1.6.6 (svn 1.6.5)
apple:.git alex$ git --version
git version 1.6.6
apple:mac-zfs alex$ svn --version
svn, version 1.6.5 (r38866)
   compiled Oct 16 2009, 02:54:10

是否安装更新版本的Git或SVN可以解决问题?我猜测是后者。

需要注意的是,我使用的/usr/bin/svn来自于OSX 10.6.2,看起来是在com.apple.pkg.BSD包中。可能在10.5.8版本中有旧版的SVN;您可以从http://subversion.apache.org/packages.html#osx下载通用版本。


一样的情况。我有svn 1.4.4,git-svn也报告svn版本为1.4.4。 - ZeissS
注意:Git svn 将搜索 Git 路径,该路径已编译并不是 $PATH 的一部分。因此,如果您有其他版本,请删除 Apple 提供的版本,并将您的版本安装到 /usr/bin 中,或者设置一个符号链接从 /use/bin 到 /use/local/bin。 - AlBlue
谢谢您对git路径规则的澄清,这解开了我遇到的大部分问题。 - Ben Ward
有没有办法找出git路径是什么?我已经用1.6版本替换了所有能找到的svn,但它仍然显示svn 1.4.4。 - holmes
"git --exec-path" 会告诉你它的位置,例如在我的电脑上是 "/usr/local/git/libexec/git-core"。你也可以使用 --exec-path=/path/to/elsewhere 来更改它,但我建议小心操作(或者使用 GIT_EXEC_PATH 变量)。 - AlBlue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接