zoukankan      html  css  js  c++  java
  • 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:WorkingCXX	hirdparty-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:ProgsTortoiseSVNinsvnserve.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:ProgsTortoiseSVNinsvnserve.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:ProgsTortoiseSVNinsvnserve.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:ProgsTortoiseSVNinsvnserve.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:ProgsTortoiseSVNinsvnserve.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推到仓库中。

    参考链接:

    https://code.google.com/p/support/wiki/ConvertingSvnToGit

  • 相关阅读:
    在SQL中删除重复记录
    SQL语句生成SQLServer数据字典
    还原数据库时出现的问题
    Active Server Pages 错误 'ASP 0201'
    VS.NET新建项目时出现“两者需要映射到相同的服务器位置”
    cs0016: 未能写入输出文件“c:\windows\microsoft.net\***.dll”错误处理
    Svchost.exe进程详解
    5y5.us
    C# 中返回星期的函数
    怎样用C#实现完整文档打印功能
  • 原文地址:https://www.cnblogs.com/huys03/p/3263955.html
Copyright © 2011-2022 走看看