把SVN项目导入GitLab(Linux操作版)

公司最近需要把SVN的项目 , 导入GIT , 又不丢失所有操作记录

操作环境  CentOS7

最主要的是导出用户并对于 , 因为SVN和GIT的用户可能并不一样

步骤 : 

1. 安装必要软件(git svn git-svn)

yum install -y subversion git git-svn

 

2. 导出svn仓库的所有提交用户 , 并修改成为git用户

#导出svn用户
svn log {svn项目地址} -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > svnusers.txt

导出的格式如下 : 

#这个是SVN的用户格式
chengronghua = chengronghua <chengronghua>
chenshuan = chenshuan <chenshuan>

需要改成git的格式 , 另存为 gitusers.txt

chengronghua = crh <crh@qq.com>
chenshuan = cs <cs@qq.com>

 

3. 把SVN项目Checkout并转换成Git项目

#注意文件要指向那个Git的user文件
git svn clone {SVN项目地址} --no-metadata --authors-file=gitusers.txt {项目名称}

可以用 git log查看一下日志 , 发现项目已经检出 , 并转换成了git项目 , 并且log没有丢失

 

4 . 下面就是git的常规操作了

# gitlab上先建立一个新项目 , 并创建一个README.md或者.gitignore
# 然后就是正常的创建提交动作
git remote add origin http://{git地址}
#这一步可能会出现让你补充commit的提示 , 不用管 , 直接:q!退出就行
git pull origin master
git push -u origin master

 

posted on 2022-04-22 09:01  太清  阅读(499)  评论(0编辑  收藏  举报