SVN项目导入Gitlab

建立 SVN 用户到 Git 用户的映射

在 SVN,每个提交者在主机上有一个用户名,记录于提交信息中,而 Git 使用作者名称和邮箱来标记用户。

如果想迁移前后保证 Commit 作者信息可追溯,需要建立从 SVN 用户到 Git 作者的映射关系,这需要建立一个叫做 userinfo.txt 的文件,利用 SVN 作者 = 作者昵称 <邮箱地址>的格式表示映射关系。

查看 SVN 用户

首先检出全部 SVN 用户列表:

svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > userinfo.txt

输出的 userinfo.txt 文件内容如下:

fengxia_liu
ming_wang 
qianchi_liu 
yan_zhang 
yongming_gu
zhaowei_ding 

描述映射关系

接着按以上格式描述映射关系:

zhiming_wang = zhiming_wang <>
zhiqianchi_liu = zhiqianchi_liu <>
zhiyan_zhang = zhiyan_zhang <>
zhiming_gu = zhiming_gu <>

此时,userinfo.txt 就准备好了,接下来开始克隆 SVN 地址。

下载 SVN 代码库

git svn clone {SVN项目地址} --no-metadata --authors-file=userinfo.txt 

创建一个空仓库

接下来就可以将本地的仓库 push 到远程地址,命令如下:

git remote add origin http://172.16.10.2/product/server.git

推送至远端 Git 仓库

git push origin --all

如果原来的 SVN 项目有 Tags 的话, git push -u origin –all 运行之后并不能让分支和标签都推送到远端。实际上,只提交了 branches ,并没有提交tags。此时,你需要执行一下git push –tags

git push -u origin --tags
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏叶新城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值