- 首先,去下载一个git for windows
- 准备一个空的
gitlab
仓库 - 本地新建一个目录(
GIT_CODE
)用来装我们的源代码 - 在本地的
svn
目录下,按住shift
键,然后空白处右击
,选择在此处打开命令窗口(W) 然后开始进行svn账号与git账号映射,在命令窗口中输入:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt
这个时候,应该在我们的
svn
目录内生成了一个users.txt
文件,内容大致是这样子的:dl.wang01 = dl.wang01 <dl.wang01> kw.hou01 = kw.hou01 <kw.hou01> liuxia03 = liuxia03 <liuxia03>
这里我们需要手动把
=
号右边的内容修改成git
的名称以及对应的邮箱;这里只是提交日志的展示信息;=
号左边的名称是提交过svn
的用户名;
这里需要注意一下:生成的用户名有可能不全,所以需要自己手动检测一下,如果SVN
的提交用户没加全,后边在执行clone
的时候,如果检测到该用户没有在users.txt
中就会失败;- 把
users.txt
拷贝到GIT_CODE
目录内,然后使用Git Bash
切换到GIT_CODE
目录下 输入以下命令回车:
git svn clone --stdlayout --no-metadata -A users.txt https://svn.您的svn地址.com/ ./ // 如果只是想保留指定版本之后的日志,可以再加一个 -r 参数: -r 368594:HEAD git svn clone --stdlayout --no-metadata -A users.txt -r 368594:HEAD https://svn.您的svn地址.com/ ./ // 关于如果查看SVN提交的版本,可以用小乌龟查看,右键-show log,然后 Revision 列就是我们提交的版本号 // 当然,也可以全部保留日志,只是会从第一个版本,一条条的检索,如果提交记录很多,会花很长时间
- 然后就是慢长的等待
执行完后,再运行下面的命令:
git remote add origin http://gitlab.您的git空仓库地址.git git push -u origin trunk:master
- 我自己执行完
git remote add origin xxx.git
后的操作都是用的Sourcetree(Simplicity and power in a beautiful Git GUI)
参考资料:git-svn,SVN迁移到Git的过程