将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. 不能对以下表使用 TRUNCATE TABLE

    1.由 FOREIGN KEY 约束引用的表.(您可以截断具有引用自身的外键的表.) 2.参与索引视图的表. 3.通过使用事务复制或合并复制发布的表. 4.对于具有以上一个或多个特征的表,请使用 DE ...

  2. 多维矩阵转一维数组(c++)【转载】

    在由二维矩阵转为一维数组时,我们有两种方式:以列为主和以行为主. 以列为主的二维矩阵转为一维数组时,转换公式为: index=column+row×行数 以行为主的二维矩阵转为一维数组时,转换公式为: ...

  3. [C++] new和delete运算符使用方法

    new 和 delete 是C++语言中的两个运算符,配套使用. new:用于分配内存,与C语言中的 malloc 相同,分配在堆内存 delete:用于释放内存,与C语言中的 free 相同,释放堆 ...

  4. go -- go 程序 启动docker容器

    package main import ( "io" "log" "os" "time" "github.co ...

  5. 十二、导出python脚本

    一.为什么要导出? 导出成多语言脚本,方便二次开发 使用其他语言的test runner 使用自己最熟悉的语言做接口自动化测试 二.导出成python脚本 演示 导出成python的requesy脚本 ...

  6. ubuntu18 maven

    user1@user1-ThinkPad-W540:~$ user1@user1-ThinkPad-W540:~$ sudo mkdir /opt/maven[sudo] password for u ...

  7. Spring cloud微服务安全实战-7-8ELK+SpringBoot环境搭建

    采集不可聚合的离散的.日志信息的e ELK是三个系统的简称 LogStash:用来做日志的收集.过滤.格式转换 Kibana:和普罗米修斯的grafana一个意思.主要用来展示数据. 用docker来 ...

  8. matlab学习笔记8 基本绘图命令-图形窗口简介

    一起来学matlab-matlab学习笔记8 基本绘图命令_1 图形窗口简介 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等 ...

  9. Docker容器(六)——创建docker私有化仓库

    docker私有化仓库是为了节约带宽(外网速度慢或者干脆不能连外网),以及自己定制系统. (1).环境 youxi1 192.168.5.101 docker私有化仓库 youxi2 192.168. ...

  10. oracle 存储函数,更新库存

    create procedure PRO_update_Goods_group_stock is v_min_stock , ); v_gg_stock , ); v_goods_no number; ...