环境:

Centos 6.x


总的来说,从SVN迁移至Git共有以下几步:

1)确保SVN的auth.conf文件里的每个user都在Git将会用来配置提交历史的文件里面有对应的名字和邮件地址

2)创建一个本地的Git仓库

3)将本地Git仓库连接到远程的SVN仓库

4)配置Git的提交历史用户名

5)开始从SVN获取代码

6)将本地Git仓库连接到远程Git仓库

7)推送本地仓库代码到远程仓库


详细步骤:

  1. 生成第4步会用到的用户名文件

    A. 通过以下命令获取SVN仓库

    #svn checkout --username xxxx SVN-REPO-URL

    B. 在获取的仓库里,运行以下命令生成authors.txt文件

    #svn log ^/ --xml | grep -P "^(.*?)<\/author>/$1 = /' > ../authors.txt

    C. 以下面的格式编辑生成的authors.txt文件

    SVNUser = [GitUser_FullName]             //GitUser_FullName是可选的

  2. 创建本地Git仓库

    #mkdir folderName

    #cd folderName

    #git init

  3. 将本地Git仓库连接到远程的SVN仓库

    #git svn init http://svn.com/proj --no-metadata

  4. 配置Git的提交历史用户名

    #git config svn.authorsfile ~/authors.txt

  5. 开始从SVN获取代码

    #git svn fetch

  6. 将本地Git仓库连接到远程Git仓库

    #git remote add origin SERVER_REPO_LOCATION

  7. 推送本地仓库代码到远程仓库

    #git pull origin master

    #git push origin master


注:

常见错误1:403 Forbidden Error

解决方法,运行以下命令:

#git remote set-url origin https://[email protected]/user/repo.git