1. 创建SVN用户与Git用户的映射关系文件user.txt. 文件内容如下:

    1
    2
    svnuser1=gituser1<gituser1@xxx.com>
    svnuser2=gituser2<gituser2@xxx.com>

    在Windows Power Shell下执行下面的命令,可以获取到svn库的所有提交的用户:

    1
    2
    3
    4
    svn.exe log --quiet |
    ? { $_ -notlike '-*' } |
    % { ($_ -split ' \| ')[1] } |
    Sort -Unique
  2. git svn从SVN库拉取数据

    1
    2
    $ git svn clone --no-metadata -A users.txt http://svn.xxx.net/svn/svnproject gitproject \
    --user leon --log-window-size 5000

    users.txt是步骤1的用户映射关系文件路径。

    http://svn.xxx.net/svn/svnproject 是svn的地址。

    gitproject是本地git仓库的名称。

    –user leon是指定svn的用户 。如果本地没有登陆过该用户,会弹出提示框输入密码。

    如果拉取过程中中断了,可以git svn fetch继续。

  3. 拉取完成后可以通过git log看到日志

  4. Push到远程仓库

    1
    2
    $ git remote add origin git@gitlab.xxx.net:jsc/jscc04.git
    $ git push -u origin master

Reference