How to Convert Subversion Repo to Git
用了比较长时间的 SVN,但现在新的项目都采用Git。之前的项目又不得不维护,那么能不能将项目从SVN迁移到Git呢。答案是肯定的,网上的方案是 git-svn,或者更高级的封装 svn2git。
方法其实很明确,导出SVN的历史数据,建立新的Git Repo。但是在实际操作中遇到了一些问题,且在这里记录一下。这次的操作环境是Windows。
1. git-svn只支持通过网络连接(svn:// 或 http://之类)的方式来转换
这样的话,其实比较麻烦,需要提供网络形式的连接方式。一些小项目就是本地建的repo。
git.exe svn clone "file:///D:/Repositories/thirdparty" "F:\Working\CXX\thirdparty-test" -T trunk -b branches -t tags Initialized empty Git repository in f:/Working/CXX/thirdparty-test/.git/ Couldn 't open a repository: Unable to open an ra_local session to URL: Unable to open repository ' file:///D:/Repositories/thirdparty ': Expected FS format ' 2 '; found format ' 4' at /usr/lib/perl5/site_perl/Git/SVN.pm line 310 git did not exit cleanly ( exit code 1) (2344 ms @ 2013/8/17 10:11:08) |
2. 利用TortoiseSVN自带的svnserve.exe来提供svn://连接方式
D:\Repositories> "E:\Progs\TortoiseSVN\bin\svnserve.exe" -t -r D:\Repositories ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log -revprops atomic-revprops partial-replay ) ) ) D:\Repositories> "E:\Progs\TortoiseSVN\bin\svnserve.exe" -i -r D:\Repositories ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log -revprops atomic-revprops partial-replay ) ) ) D:\Repositories> "E:\Progs\TortoiseSVN\bin\svnserve.exe" -i -- listen -port 3690 -r D:\Repositories ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log -revprops atomic-revprops partial-replay ) ) ) D:\Repositories> "E:\Progs\TortoiseSVN\bin\svnserve.exe" -i -- listen -port 13690 -r D:\Repositories ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log -revprops atomic-revprops partial-replay ) ) ) D:\Repositories> "E:\Progs\TortoiseSVN\bin\svnserve.exe" -d -- listen -port 13690 -r D:\Repositories |
之前一直连不上,出现下面的错误:
svn Connection refused at /usr/lib/perl5/site_perl/Git/SVN.pm line 310 |
利用-d选项后,可以实现正常访问。
3. 转换之后,可以将这个repo推到仓库中。
参考链接:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步