SVN迁移到git

本文详细记录了从SVN迁移到git的过程,包括clone代码时的参数设置,如--no-metadata、--authors-file和--trunk,以及解决迁移过程中遇到的问题,如作者映射、错误处理和push到git仓库的操作。同时提到了Android项目中.gitignore的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

       目前同步开发有好几个项目,有的采用svn管理,有的采用git管理,一想也知道svn管理的项目都比较老,每次切换工程开发都要改变提交代码的方式。因此就打算把svn管理的项目迁移到git上,其实前面说的都不是重点,重点是svn服务器有时不稳定,所以才打算迁移到git上。

迁移过程

       说干就干,问题是之前都没有迁移过啊!这都难不倒我,有万能的google,随便搜索关键字svn迁移到git,随便出来都是一大堆文章,看起来确实没有几步,那就开干吧!

clone代码

       很多文章上来第一步就是:

git svn clone https://xxxxx/xxxxxx/trunk/android/project1 --no-metadata --authors-file=userinfo.txt  --trunk=trunkprojectname

       wtf? 这是啥!后面的参数都是些啥?不得已又翻下一遍找到了上面的参数的解释:

–no-metadata: 就是拉取的时候,不需要拉取svn的metadata信息,这样可以保证提交到git项目比较干净
–authors-file=userinfo.txt: 表示提交的作者映射,将svn中提交记录的作者都映射到新的名字
–trunk=trunkprojectname:表示svn上trunk分支,后面是trunk分支的名称

作者映射

       这里我们首先创建一个txt文档来映射所有的提交者, 格式如下:

 loginname = Joe User <user@example.com>

       如果有多个,那就多行,不需要符号换行:

loginname = Joe User <user@example.com>
loginname1 = Jone User <guest@example.com>

       将所有的提交者都做一次映射。那我们接着clone代码吧!

       项目可能开发了很久的时间,肯定避免不了人员的变动,我们怎么获取所有提交人的记录?因为后续一旦其中有一个记录缺失,会导致迁移失败,这里我们切换到项目地址下,运行如下命令:

svn log --xml | grep "^<author" | sort -u | \awk -F '<aut
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值