概述

公司要求将之前使用SVN进行管理的项目迁移到Gitlab进行项目管理,但是运维连不上我们这边的SVN服务器,于是我们就得自己将SVN项目迁移到Gitlab。Yeah!终于有我表现的机会了。
要求保留SVN上的提交记录
总体的执行步骤如下:

  1. 账号对应
  2. git-svn拉取原来SVN项目
  3. 提交项目到Gitlab上

执行步骤

接下来我们就要进行转换了。

账号对应

SVN使用的是用户账号展示的提交记录,但是git使用的是账号和邮箱进行人员确认的,因此我们需要使用将二者进行对应。
新建个txt文本文档,名字随便取(但是我这儿使用是svn2git.txt),文本内容如下:zhangsan=zhangsan <zhangsan@gmail.com>,等号左边是SVN账号,等号右边是Gitlab账号和邮箱信息(注意:离职人员也得转换,否则报错)。
先别急,SVN账号可以用命令导出来的。
打开你的Git BASH(你得先安装了Git以后才有的)进入你要保存账号对应文件(我这里是svn2git.txt)的目录(我是在d盘根目录使用:cd /d),
执行如下命令:svn log 你的SVN项目的url -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@gmail.com>"}' | sort -u > ./svn2git.txt,这是使用的Linux的awk命令导出的svn账号信息格式化的,当然我这里用的事gmail邮箱,你可以自定义邮箱,打开看下是不是和上面的文本内容格式是一致的。

git-svn拉取SVN项目

没错,git内置了一个git-svn的工具,你可以用git-svn按照git的方式来管理svn项目,但是强烈不推荐这么干。
接下来使用git-svn拉取你的SVN项目,命令如下:git svn clone "你的SVN项目的url" --no-metadata --authors-file="d:/svn2git.txt" 你自定义的项目名,这是使用你的账号对应转换SVN的提交记录为git提交记录。

提交项目到gitlab

切换到使用Git-svn拉取的项目目录下,执行:git config --local user.name "你的gitlab用户名"git config --local user.email "你的gitlab邮箱",这两个是配置项目用户信息,
git remote add origin 你的gitlab项目的git地址(注意使用http开头的,不雅用git开头的), git push -u origin master,这两个命令是添加远程操作url和推送远程。

总结

svn迁移git就是通过git-svn将用户提交记录进行对应,然后推送到新项目中去。因此建议让大家把之前要提交的代码全部提交上去然后开始进行推送,否则就得拷贝拷贝到新项目代码了。

SVN迁移Gitlab步骤的更多相关文章

  1. svn迁移gitlab,构建前端打包发布流程

    前端资源迁移     目前公司的前端资源托管在svn服务器上,由于团队的逐渐扩大,svn的分支管控越来越不灵活,而且对于以后前端流程一体化的处理支持不是很好,因此决定在版本控制上转向git.git的好 ...

  2. 使用git-svn迁移SVN至GitLab

    使用git-svn迁移SVN至GitLab 1.安装git和git-svn 后面的步骤中对git版本有一定要求,通过yum安装的git版本较低,这里进行编译安装 [root@DevTest ~]# y ...

  3. SVN迁移到Gitlab实践经历

    svn 迁移至git操作手册 项目交付.版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等.git自带了从svn迁移至git的工具命令,可很好的对 ...

  4. 使用subgit进行svn迁移至git(branch,tags)

    前言: 最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程 整体思路是进行一次导入: 先通过subgit将svn整个import至本地,在与git上的项目进行合并. 1 ...

  5. 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

    公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...

  6. ①将SVN迁移到GitLab-单分支迁移

    将SVN上的代码迁移到GitLab上,实际原理是将所迁移的服务器上,拷贝SVN上的相关代码,在服务器上生成Git相关仓库,然后推送到GitLab仓库,并保存SVN相关的提交记录,分支,标签等信息. 一 ...

  7. SVN迁移到Git的过程(+ 一些技巧)

    SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...

  8. SVN迁移到Git的过程(+ 一些技巧

    关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...

  9. svn迁移到git仓库并保留commit历史记录

    svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...

随机推荐

  1. Axure RP 8.0软件安装教程

    Axure8.0(32/64)位下载地址: 链接:https://pan.baidu.com/s/1qYSLkKW 密码:skaw 软件介绍: Axure RP是一个专业的快速原型设计工具,让负责定义 ...

  2. (转)springboot应用启动原理(二) 扩展URLClassLoader实现嵌套jar加载

    转:https://segmentfault.com/a/1190000013532009 在上篇文章<springboot应用启动原理(一) 将启动脚本嵌入jar>中介绍了springb ...

  3. 高并发大流量专题---3、前端优化(减少HTTP请求次数)

    高并发大流量专题---3.前端优化(减少HTTP请求次数) 一.总结 一句话总结: 图片地图:使用<map><area></area></map>标签. ...

  4. JSON的android应用实例

    JSON的android应用实例 Json在线解析器 下面是直接通过JUnit来测试直接通过API来解析Json数据 1.普通键值对象 2.Json数组对象 3.Json数组对象

  5. Linux 下查看操作系统信息

    1.uname -a  可显示电脑以及操作系统的相关信息. 2.输入"cat /proc/version",说明正在运行的内核版本. 3.输入"cat /etc/issu ...

  6. python可变参数类型 a,*args,**kwargs

    a - int *args --tuple **kwargs -- dict *args是非关键字参数,用于元组,**kw是关键字参数,用于字典 可变参数 在Python函数中,还可以定义可变参数.顾 ...

  7. 调用js方法返回值为undefined

    问题描述: 我写的js方法: function getname(code){ var name $.post("",{ code:code },function(resurlt){ ...

  8. boby标签中相关标签

    有关字体相关的标签 h1~h6   字体大小 标题使用<h1>至<h6>标签进行定义,<h1>定义最大的标题,<h6>定义最小的标题.具有 align属 ...

  9. Java技术中的三大特性

    1.虚拟机                                Java虚拟机JVM(Java Virtual Machine)在Java编程里面具有非常重要的地位,约相当于前面学到的Jav ...

  10. Python基础篇(set集合)

    Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...