Svn 与 Git 搭配使用

来源:互联网 发布:流数据 协同过滤算法 编辑:程序博客网 时间:2024/04/30 03:37

项目组现在正在使用svn进行代码的版本管理,经常需要同国外客户的svn进行信息的同步,随着项目信息量的不断扩大,信息同步的速度成为了瓶颈,项目组内成员对于从本地svn上down代码和commit代码也经常抱怨时间太长。所以项目组想尝试用Git来管理代码,客户仍然采用svn来管理代码;这样就出现了现在的状况,项目组内用Git,客户用svn;Git需要经常的同步客户侧的svn信息,并将项目组开发的代码从git 库提交到客户的svn库;

以下是我在使svn与git搭配使用过程中遇到的问题及解决方法:

1、在尝试使用 git svn clone -s "http://10.1.3.252/subversion/TEST/repos/GIT" 命令从svn库中取代码并做成本地的Git库时,提示如下错误信息:
Can't locate SVN/Core.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/local/libexec/git-core/git-svn line 41.

解决方法:在本地安装subversion-perl.i386

2、在安装完subversion-perl.i386 后,在尝试运行git svn clone -s "http://10.1.3.252/subversion/TEST/repos/GIT" --username=root,又提示如下错误信息:

Authentication realm: <http://10.1.3.252:80> <TEST搴>
Password for 'root': Can't locate Term/ReadKey.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/local/libexec/git-core/git-svn line 4428.

解决方法:在终端输入#cpan

一直回车就行了,正常情况下, 系统就会自动寻找合适的镜像站点,从网络安装Term::ReadKey

在出现Fetching with LWP:时,可能需要一些时间去等;


3、在使用git svn clone -s "http://10.1.3.252/subversion/TEST/repos/GIT"命令时如果提示如下错误信息:

W: Ignoring error from SVN, path probably does not exist: (175007): 找不到HTTP 路径: REPORT 请求“/subversion/TEST/repos/!svn/bc/100/TEST”失败:找不到路径“/subversion/TEST/repos/!svn/bc/100/TEST”
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories

很有可能是你指定的svn库版本号1不存在了,你可以尝试如下命令:

git svn init "http://10.1.3.252/subversion/TEST/repos/GIT"

git svn fetch -r "已有的版本号"