SVN 项目迁移到GIT

为了统一、规范开发流程,以及CICD的推进,将SVN整体迁移至git环境,需要将历史记录同步到git

本文参考了以下链接
https://blog.csdn.net/ouyang_peng/article/details/80372805
https://www.cnblogs.com/goodwell21/p/10044818.html

主要分三步

1.svn用户映射
到svn工程目录下执行命令
svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print 2}' | awk -F '</author>' '{print1}' > userinfo.txt

获取当前项目的用户,然后每一天修改为以下格式
malone=malone< malone@123.cc>

userinfo.txt.png

新建个文件夹,把userinfo.txt拷贝过来(项目过多的话此过程不需要重复完成,执行一遍后,将所有用户名称都写到此txt中可重复利用

2.git svn clone
在上userinfo.txt目录执行命令
git svn clone http://malone@svn.test.cc:8011/svn/sdk_dev/iOS/AutoTest-iOS GitProject --authors-file=userinfo.txt --no-metadata(svn copy URL获取地址)
等待执行完成后,进入GitProject目录,执行git log 确定git成功

3.push到git
先在git/gitlab新建项目
git remote add origin git@gitlab.1223.com:sdk/autotest-ios.git
git remote -v(执行确定添加成功)
git push origin --all (执行成功后到git/gitlab页面刷新看看是否成功,查看历史页面是否同步成功)

错误:
1.执行git push origin --all 时出现错误
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists
解决办法: 先执行git remote add origin git@gitlab.1223.com:sdk/autotest-ios.git命令

2.Author: ** not defined in users.txt file
1)是由于userinfo.txt文件格式有误,应该为 malone= malone < malone@tests.cc>
2)是userinfo.txt真的少了该用户的配置(修改后记得删除git的目录 再执行命令)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • svn有很多优点,但是git的出现对svn的冲击的确很大,现在很多公司项目的都迁移的git上了,下面是我自己在做s...
    初xin工作室阅读 266评论 0 1
  • 由于工作需要,要将原来本地的SVN项目迁移到GIT@OSC,因此记录下,以便日后翻看。 1.安装Git 可以到Gi...
    LeoLai阅读 4,413评论 0 6
  • 一、从svn导出项目 使用命令(地址可以是svn开头,也可以是http,https): git svn clone...
    华南虎阅读 2,374评论 0 51
  • 前言 最近刚把公司项目从 SVN 迁移到了 Git 上,在这里做个记录。 数据迁移 执行上面的步骤就可以将 SVN...
    anyesu阅读 6,528评论 1 2
  • 历史原因,我司部分前端项目在svn托管。在重构和迁移并行的情况下,开启了svn项目迁移git的操作。目前已迁移完成...
    kyle背背要转运阅读 1,284评论 0 3