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

一、安装git-svn

首先安装迁移所需要的工具git-svn,通过以下命令行进行安装。

apt-get install -y git-svn或者yum install -y git-svn

我们在原来的svn教程基础上,用shaw001用户新增了testMeg.txt、commit-shaw001.txt文件,用shaw002用户新增了commit-shaw002.txt文件,并修改了两个文件,svn提交记录如图所示:

二、生成用户映射文件

保留原SVN仓库的Commit等历史记录,需要获取到SVN使用的作者名字列表,为了获得 SVN 使用的作者名字列表,可以通过以下命令行,获取SVN相关用户信息:

svn co --username shaw001 --password shaw001 svn://192.168.109.128/  code

以上红色部分为可变变量,说明:

--username:后头跟svn用户名。

--password:后头跟svn用户相关密码

svn://192.168.109.128/:为SVN仓库地址

code:文件夹,存放SVN仓库相关文件夹

执行命令后会将svn上的相关文件代码存放到code文件夹。进入code文件夹,可以看到,我们在svn存放的一些文件信息。

接着,通过以下命令,生成svn用户列表:

svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' > /home/svn/users.txt

红色部门为用户列表文件存放的路径。期间要输入svn的用户名和密码。

执行命令后我们在/home/svn路径下会多出一个users.txt的文件。

打开后,我们会看到里头有svn的用户。

三、修改用户列表,配置与GitLab用户映射关系

我们登陆到GitLab上,新建两个用户shaw001和shaw002,并且email设定为shaw001@example.com和shaw002@example.com

修改users.txt文件,配置对应关系:

格式如下:

svn用户 = GitLab用户<GitLab用户邮箱>

四、将svn仓库变成GitLab仓库

在服务器上拷贝svn代码并转成GitLab仓库。通过以下命令:

git svn clone svn://192.168.109.128/ --authors-file=/home/svn/users.txt  --no-metadata myproject

期间也是要输入svn密码的:

执行完文件信息如下:

五、创建GitLab项目接收代码

在gitlab创建testsvn项目用来接收svn代码

执行分支添加:

git remote add origin git@192.168.109.128:shaw001/testsvn.git

然后推送到远端:

git push origin –all

有时候执行过程中会提示:无法推送一些引用到”xxx”

执行以下命令:

git push -u origin +master

这时候要添加sshkey。这步骤省去,添加完后,重新执行下。这儿添加ssh key略去,添加SSH key之后重新执行:

登录gitlab查看下,相关的提交记录

文件已经同步了

同时相关的提交记录也同步了。完成。

①将SVN迁移到GitLab-单分支迁移的更多相关文章

  1. gogs迁移至gitlab

    一.先来聊一聊迁移的思路,不管是gogs迁移至gitlab,还是gitlab迁移至gogs,亦或gitlab迁移至gitlab,手动迁移的步骤都是如下图所示(在gitlab上新建一个空项目就会有这样的 ...

  2. SVN迁移到Gitlab实践经历

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

  3. 项目案例之GitLab的数据迁移

    项目案例之GitLab的数据迁移 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方 ...

  4. github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器

    一. github仓库迁移到gitlab 先进入 new project: 选择 Import project, 选择下面的github: 进入后,这里需要github的 personal acces ...

  5. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  6. Gitlab备份与恢复、迁移与升级

    0.Gitlab安装 1.安装和配置必要的依赖关系 在CentOS7,下面的命令将在系统防火墙打开HTTP和SSH访问.   yum install curl openssh-server postf ...

  7. 如何从GitHub迁移到GitLab?

    如何从GitHub迁移到GitLab? 在本文中,我们将解释如何从Github迁移到Gitlab,同时我们也将解释如何将Github的开源项目导入到Gitlab. 正如你可能非常清楚的那样, Gitl ...

  8. gitHub 迁移到gitlab上

    GitHub 迁移到 GitLab 上 第一步在github上生成 token 地址 https://blog.csdn.net/u014175572/article/details/55510825 ...

  9. Gitlab备份、迁移、恢复和升级

    Gitlab备份.迁移.恢复和升级 自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上.备份.迁移.恢复.升级过程如下 1.gitlab备份 ...

随机推荐

  1. ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法

    首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 ...

  2. 在IDEA上对SpringBoot项目配置Devtools实现热部署

    spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtool ...

  3. Laravel模型事件的实现原理详解

    模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细 ...

  4. 013 Enhancer创建动态代理

    在上一章使用了Enhancer,没有仔细说明代理的问题,在这一章进行详细的说明. 原本想使用cf包的,后来发现使用framework包下的包也没有问题,程序中就一直使用framework中的类. 一: ...

  5. 运维笔记--linux下忘记mysql root密码

    补充链接:Windows下忘记密码处理: https://www.cnblogs.com/hellojesson/p/5972950.html 场景描述: Linux环境下忘记 root 密码, 1. ...

  6. 【各种误解解释】C-LODOP的三种角色及注册号

    该简短问答是从现象和误解和相关作为分类,主要是注册角色和注册号使用等.之前的相关博文(该相关博也有些链接到的博文,按照大类区分):LODOP和C-LODOP注册与角色等简短问答[增强版]. 确认角色: ...

  7. 【视频开发】CximageMat 、CximagelplImage 以及 lplImageMat的转换、像素位深度

    1.传统的lplImage * -------> Mat格式 IplImage* img = cvLoadImage("greatwave.png", 1); Mat mtx ...

  8. idea创建maven web项目需要注意的一些细节

    在idea中构建maven java web项目,从new project到选择maven骨架到最后finish完成,整个流程完成后,项目基本结构已经出来,但是距一个可以正常开发运行的web项目还有一 ...

  9. Influx Sql系列教程五:insert 添加数据

    接下来开始进入influxdb的curd篇,首先我们看一下如何添加数据,也就是insert的使用姿势 在进入本篇之前,对于不了解什么是retention policy, tag, field的同学,有 ...

  10. jquery向上滚动页面的写法

    jquery向上滚动页面的写法<pre> $('.arrow_top').on('click',function () { $body = (window.opera) ? (docume ...