在我的Linux机器上,我同时使用SVN和Git。如何让git-svn使用特定版本的SVN?
为了让我的生活更轻松,我添加 源/opt/svn/linux64/ix86/svn_1.8.5/interface/startup/svn_1.8.5_64.env 我.bashrc
,从而书写 SVN -version 显示1.8如预期的那样。
但是当这个git-svn
结帐失败。这发生在Git 1.7.10.1中,并且是已知的不兼容性(see for example here)。
我可以很容易地通过source
ing SVN版本1.7.9解决它。但是这需要我重新启动SSH连接。然后再执行git-svn
操作重新启动。 (在这两种情况下,.bashrc
必须编辑!)
我也可以切换到SVN 1.7.9,但这将需要我降级所有SVN工具,包括我在Windows机器上使用的TortoiseSVN(以及我不时在共享网络驱动器上签出结账时使用)。因此,有一种“非侵入式”的方式(所以我可以只为自己做 - Linux在共享服务器上!)使git-svn
使用1.7.9版本,而命令行仍将使用1.8。 5?
/opt/svn/linux64/ix86/svn_1.8.5/interface/startup/svn_1.8.5_64.env
包含以下:
add_to_env()
{
old_value=`eval echo '$'${1}`
eval ${1}=`echo ${old_value}|awk '{ n=split($1,parts,":"); printf "%s", toadd ;
for (i = 1; i <= n; ++i) if (toadd != parts[i] ) printf ":%s", parts[i]; }' toadd=${2}`
}
if [ -n "$SVN_STARTUP" ]; then
SVN_TMP=$SVN_STARTUP
unset SVN_STARTUP
. $SVN_TMP
else
# setum and setmake can overrule SVN_VERSION
if [ -z "$SVN_VERSION" ]; then
export SVN_VERSION=svn_1.8.5
fi
export SVN_HOME=/opt/svn/linux64/ix86/$SVN_VERSION
add_to_env PATH $SVN_HOME/bin
export PATH
add_to_env MANPATH $SVN_HOME/share/man
export MANPATH
add_to_env LD_LIBRARY_PATH $SVN_HOME/lib
export LD_LIBRARY_PATH
fi
至于的Perl:
perl --version
显示5.8.8,which perl
显示/usr/bin/perl
这不是一个链接,/usr/bin
也含有perl5.8.8
这似乎是(通过diff
)是相同的,find/-name Ra.pm
的发现(到目前为止...)/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/SVN/Ra.pm
。
svn_1.8.5_64.env文件中包含了什么内容?这不是Subversion的一部分,因此它必须是您的打包者或系统管理员为您设置的东西。 –
@BenReser我已经添加了这个问题。 –
我在系统上添加了一些关于Perl的细节。 –