SVN 迁移到Git,Gitlab

Orenda ·
更新时间:2024-11-10
· 696 次阅读

准备userinfo.txt文件

先用svn checkout项目(如果本地已有,就无需check),命令行cd到目录下,执行

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

会输出一个userinfo.txt文件

linzhiji wanghongwei

接着编辑userinfo.txt文件,补充提交记录的作者、邮箱。=左侧是SVN信息,=右侧是git里的信息(因为Git是用邮箱来标识一个提交者的)

linzhiji = linzhiji wangtengfei = wangtengfei 通过git svn clone克隆一个git版本库

命令行CD到项目所在的上级目录(这里是freestore上级目录)里。拷贝userinfo.txt到上级目录

执行命令

git svn clone https://192.168.1.16/svn/ishehui/trunk/Mobile/Android/iShehuiFreeStore --no-metadata --authors-file=userinfo.txt freestore

参数–no-metadata表示阻止git导出SVN包含的一些无用信息
参数–authors-file表示SVN账号映射到git账号文件,所有svn作者都要做映射
参数freestore本地项目(目录)名称
参数–branches表示分支项目

执行成功如下图

提交到Git

clone完成后,在项目目录下会生成.git文件,CD到项目目录(这里是 freestore)下

配置Git姓名和邮箱

git config --global user.name "linzhiji" git config --global user.email "linzhiji@gmail.com"

推送到远程Gitlab仓库

git remote add origin http://xxx.xxx.com/fx/android/freestore.git

推送到远程Gitlab仓库

git push origin --all

推送成功后,在gitlab上可以看到代码

同时带有commit历史信息

参考文档:https://blog.csdn.net/ouyang_peng/article/details/80372805

linzhiji 原创文章 258获赞 24访问量 110万+ 关注 他的留言板 展开阅读全文
作者:linzhiji



gitlab SVN Git

需要 登录 后方可回复, 如果你还没有账号请 注册新账号