赞
踩
使用命令行方式,将SVN上的单个项目(没有trunk、branch、release等)迁移到Gitlab。
TortoiseSVN 安装时选择 cmd line,默认安装是不支持的,需要重新安装。
在gitlab上新建一个project和一个branch用来存放svn的内容;
(1)新建文件夹,最好不要中文命名,右键git Bash here,输入如下命令回车,生成userinfo.txt。
svn log https://你的svn_project_path -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"amber.chen@yeestor.com>"}' | sort -u > ./userInfo.txt
可以在文件夹下看到userinfo.txt,内容如下:
(2)输入如下命令,clone svn指定路径的内容
git svn clone https://你的svn_project_path --no-metadata --no-minimize-url --authors-file=userinfo.txt --no-minimize-url demo
--no-metadata:不拉取SVN metadata附加信息
--no-minimize-url:克隆时只会拉取你要求的项目,不会自动拉取上级内容。
--authors-file=userinfo.txt:根据提供的文件,将提交的作者名称映射到对应的用户邮箱地址。
demo:本地存放svn指定路径的内容的文件夹
(3)可能出现的问题:
E0701+Administrator@E0701 MINGW64 /e/ABC
$ git svn clone --stdlayout --no-metadata -A userInfo.txt https://你的svn项目地址/trunk
Can't load '/usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.dll' for module SVN::_Core: No such file or directory at /usr/lib/perl5/core_perl/DynaLoader.pm line 193.
at /usr/lib/perl5/vendor_perl/SVN/Base.pm line 59.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/SVN/Core.pm line 5.
Compilation failed in require at F:/Git/mingw64/share/perl5/Git/SVN/Utils.pm line 6.
BEGIN failed--compilation aborted at F:/Git/mingw64/share/perl5/Git/SVN/Utils.pm line 6.
Compilation failed in require at F:/Git/mingw64/share/perl5/Git/SVN.pm line 32.
BEGIN failed--compilation aborted at F:/Git/mingw64/share/perl5/Git/SVN.pm line 32.
Compilation failed in require at F:/
解决方法:升级git版本,win10操作如下:管理员身份打开cmd,输入以下命令:git update-git-for-windows,如果fail了,重新输入一次命令就可以了。
进入demo文件夹,右键git Bash here,输入如下2条命令即可,在gitlab网页即可看到master分支,点击history就可以看到之前在svn上提交的日志。
git remote add origin https://你的gitlab_project_path
git push -u origin master
参考文档:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。