使用git-svn迁移SVN至GitLab

1、安装git和git-svn

后面的步骤中对git版本有一定要求,通过yum安装的git版本较低,这里进行编译安装

[root@DevTest ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y

[root@DevTest ~]# wget -c https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

[root@DevTest ~]# tar xf git-2.9.5.tar.gz

[root@DevTest ~]# cd git-2.9.5

[root@DevTest git-2.9.5]# ./configure --prefix=/usr/local/git

出现报错

解决方法为

[root@DevTest git-2.9.5]# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

[root@DevTest git-2.9.5]# ./configure --prefix=/usr/local/git        #再次编译

[root@DevTest git-2.9.5]# make && make install

将编译好的git的bin目录添加到bashrc中,相当于添加全局变量

[root@DevTest git]# vim /etc/profile

export GIT_HOME=/usr/local/git

export PATH=$GIT_HOME/bin:$PATH

[root@DevTest git]# git --version

git version 2.9.5

[root@DevTest git]# yum install git-svn -y #安装git-svn

 

2、建立SVN用户到git用户的映射文件

(可选)准备作者文件,以便将SVN作者映射到Git作者。如果您选择不创建authors文件,那么提交将不会归因于正确的GitLab用户。有些用户可能不认为这是一个大问题,而其他用户则希望确保他们完成此步骤。如果您选择映射作者,则需要映射SVN存储库中更改中存在的每个作者。如果不这样做,转换将失败,必须相应地更新作者文件。以下命令将搜索存储库并输出作者列表。

[root@DevTest ~]# svn log svn://192.168.1.20/hyhy --quiet | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's/ //g' | sort | uniq >/svnauthor/authors.txt

使用最后一条命令的输出来构建作者文件。创建一个名为的文件,authors.txt并为每行添加一个映射

vim /svnauthor/authors.txt

janedoe = Jane Doe <janedoe@example.com>

johndoe = John Doe <johndoe@example.com>

alexdoe = Alex Doe <alexdoe@example.com>

 

3、通过git svn clone克隆一个git版本库,SVN里面包含trunk,branches和tags

[root@DevTest ~]# mkdir /data

[root@DevTest ~]# cd /data

[root@DevTest data]# git svn clone svn://192.168.1.20/hyhy --no-metadata --authors-file /svnauthor/authors.txt hyhy

可选参数及含义

参数--no-metadata表示阻止git导出SVN包含的一些无用信息

参数--authors-file表示SVN账号映射到git账号文件,所有svn作者都要做映射

参数--trunkmobile表示主开发项目

参数--branches表示分支项目,--ignore-refs表示不包含后面的分支项目

参数hyhy表示git项目名称

 

4、通过git log 查看项目提交的历史记录,包括作者,日照,和提交注释信息等

[root@DevTest data]# cd hyhy

[root@DevTest hyhy]# git log

 

5、提交代码到gitlab仓库

[root@DevTest hyhy]# rm -rf .git/

[root@DevTest hyhy]# git init    #初始化仓库(创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干)

[root@DevTest hyhy]# git remote add origin git@git.xxx.cn:java/hyhy.git    #添加远程项目地址(可从项目主页复制)

[root@DevTest hyhy]# git add . #将修改保存到索引区

[root@DevTest hyhy]# git commit -m "commit code"    #提交所有代码到本地版本库

[root@DevTest hyhy]# git push --all origin    #将本地的更改提交到远程服务器

[root@DevTest hyhy]# git push origin –tags    #推送标签

最新文章

  1. Hive:Spark中如何实现将rdd结果插入到hive1.3.0表中
  2. 用自己赚的钱第一次坐飞机 那feel倍儿爽
  3. location.hash的摘抄
  4. ZOJ 3826
  5. js仿京东轮播图效果
  6. 基于Eclipse的scala应用开发
  7. 面向UI编程:ui.js 1.1 使用观察者模式完成组件之间数据流转,彻底分离组件之间的耦合,完成组件的高内聚
  8. SQLyog-12.4.2版下载,SQLyog最新版下载,SQLyog官网下载,SQLyog Download
  9. ORACLE聚合函数细节
  10. 访问 Tomcat支配项目去除项目名和端口号通过IP地址(或域名)访问
  11. Angular 4+ HttpClient
  12. 搭建自己的hexo博客
  13. openstack项目【day23】:glance基础
  14. Python脱产8期 Day05 2019/4/17
  15. 深度解析vuex
  16. 物联网架构成长之路(5)-EMQ插件配置
  17. android之ExpandableListView 无法展开
  18. 微信小程序——修改data里面数组某一个值
  19. 浅谈Android View滑动冲突
  20. android学习-2 (AVD 创建)

热门文章

  1. K8s的内部Pod之间都不通,搞了快两天
  2. FFT模板 生成函数 原根 多项式求逆 多项式开根
  3. SPOJ - PHRASES K - Relevant Phrases of Annihilation
  4. centos6.5 安装scrapy
  5. mysql 允许远程IP连接, 并查看所有用户的所有权限
  6. HDU 3339 In Action【最短路+01背包模板/主要是建模看谁是容量、价值】
  7. 洛谷P2556 [AHOI2002] 黑白图像压缩 [模拟]
  8. 【剑指offer】顺时针打印数组
  9. poj 1050(矩阵求和问题dp)
  10. Hive的严格模式