微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将svn源代码有提交记录地切换到git

1.准备物料
a.待切换的svn源代码地址:http://xxx/.../Branches/svnproject
b.目标git源代码地址(需要事先在git上手动创建好git工程):https://xxx/.../gitproject.git
c.gitbash(windows上使用bash工具,linux可忽略)

2.打开gitbash工具,创建/d/git/myspace/目录
cd /d/git/myspace/

3.获取svn提交作者并做映射
svn log http://xxx/.../Branches/svnproject --quiet | awk '/^r/ {print $3}' | sort | uniq >./authors.txt

记事本打开authors.txt得到如下提交作者信息:

 

 按照如下格式做映射并保存

2118645 = 张三 <wkh@163.com>
2237141 = 李四 <237141@163.com>
2256660 = 王五 <256660@163.com>
2260785 = Lily <260785@163.com>
227701 = 未知 <27701@163.com>
SVN_Admin = SVN_Admin <SVN_Admin@163.com>

4.获取svn历史版本信息到本地

git svn clone http://xxx/.../Branches/svnproject -r 2192188:HEAD --no-Metadata --authors-file ./authors.txt gitproject

因完整获取svn提交历史信息非常耗时,故红色处标记了从指定svn版本号到最新版本。如果要全量获取,去掉红色文本即可

5.git中可查看到原svn中的历史提交信息

cd gitproject
git log

6.把转换后的本地Git仓库推到公共的Git服务器

git remote add origin https://xxx/.../gitproject.git 
git push origin master --tags

所有的标签和主干现在都应该整齐干净的躺在新的Git服务器里了。如果要将分支也同步到远程Git服务器,将--tags改为--all。

最后可以在git仓库中查看push上去的源代码地址了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐