SVN代码迁移到Gitlab 保留提交记录
原文地址:https://blog.51cto.com/riverxyz/4041824
操作步骤(centos):
1、在gitlab服务器安装git、git-svn命令
# 查看yum中可安装的git/git-svn版本
yum info git
yum info git-svn
# 安装git/git-svn
yum install git
yum install git-svn
2、下载svn trunk代码到指定目录
# 创建/home/code目录
mkdir /home/code
#进入code目录
cd /home/code
# 执行clone命令
git svn clone --stdlayout --no-metadata --trunk=/ --tags=tags --branches=branches svn://192.168.0.1/xxx xxx
# 回车之后会要求输入svn root密码 如果没有root密码继续回车 输入你的svn账号和密码就开始下载了
其中参数
- no-metadata表示忽略svn无用的信息
- trunk表示主干
- branches表示分支
- xxx表示需要迁移的项目
3、在gitlab上创建一个空白项目
此步骤忽略自行创建
4、上传代码
# 进入刚刚下载的需要迁移的项目目录进行提交
cd /home/code/xxx
# 添加git远程仓库地址
git remote add origin http://127.0.0.1/root/xxx.git
# push代码到远程仓库
git push -u origin master
5、验证结果
登录gitlab找到刚刚创建的项目,查看代码提交历史记录。
其它情况
windows中安装的git也支持git-svn功能,但是我尝试在windows系统上操作时,会出现如下错误,在网上未找到解决办法。如果有可以解决该问题的还望不吝赐教。
svn-remote.svn: remote ref '\dev\Git\dev\Git;refs\remotes\origin\trunk' must start with 'refs/'