在我的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的細節。 –