先用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