概述

公司要求将之前使用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. C#-Newtonsoft.Json遍历并修改JSON

    遍历 JObject:https://www.newtonsoft.com/json/help/html/JObjectProperties.htm 遍历 JArray: string json = ...

  2. flysql 里两种传参的方式

    传参的方式,两个标清楚: for lists_bx_goods in out_list: sql = XDO().get_update_sql('init_goods_test', { "一 ...

  3. php如何获取服务器端的一些信息

    <?php echo "服务器端的IP地址是:<br />"; echo $_SERVER['SERVER_ADDR']; echo "服务器端的端口号 ...

  4. js判断客户端是pc还是移动端

    navigator.userAgentNavigator 对象包含有关浏览器的信息.没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象.userAgent 属性是一个只读的字符 ...

  5. 循环神经网络(RNN)入门介绍

    循环神经⽹络是为更好地处理时序信息而设计的.它引⼊状态变量来存储过去的信息,并⽤其与当前的输⼊共同决定当前的输出.循环神经⽹络常⽤于处理序列数据,如⼀段⽂字或声⾳.购物或观影的顺序,甚⾄是图像中的⼀⾏ ...

  6. Dubbo 系列(07-4)集群容错 - 集群

    BDubbo 系列(07-4)集群容错 - 集群 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 集群容错 - 实战 D ...

  7. centos netstat 查看是否开放了端口

    netstat命令各个参数说明如下: -a :所有 -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protoc ...

  8. python面试题之有没有一个工具可以帮助查找python的bug和进行静态的代码分析?

    pycheck pylint 本文首发于python黑洞网,博客园同步更新

  9. Git忽略已经跟踪的文件 转摘:http://blog.csdn.net/huguohuan/article/details/7380349

    某工程project用Git管理代码,但是在他的根目录下有个配置文件,比如project.iws是不需要git每次跟踪它的修改记录的. 一般做法是在.gitignore文件中添加一行 project. ...

  10. CSS文本单行显示溢出时出现省略号,多行时首行缩进并出现省略号

    为了展示表格显示字数控制,比如商品类名字太长只展示部分 1.正常文本 效果: 2.单行时出现省略号 效果: 3.多行首行缩进并出现省略号 效果: