svn项目迁移至gitlab
关于svn项目迁移有人可能会说,新建一个git项目,把原来的代码直接扔进去提交不完了吗。恩,是的,没错。但是为了保留之前的历史提交记录,还是得做下面的步骤
首先确保本地正常安装配置好git,具体步骤不再赘述。
需要配置name和email
在git bash中采用以下命令
git config --global user.name "你的名字"
git config --global user.email "你的邮箱”
1、要迁移的项目从svn clone到本地
git svn clone -s svn://ip/项目名称 --no-metadata
此处 -s 表示svn标准目录结构:trunk、branches、tags的定义的项目,如果不采用标准结构,那么就需要如下参数
--trunk="svntrunk" --branches="svnbranches“ --tags=“svntags”。
根据项目trunk结构,clone语句改写为:
git svn clone -s svn://ip/项目名称 --no-metadata --trunk="trunk/项目名“ --branches="branches" --tags="tags"
在git bash中输入上面语句提示输入有该项目权限的svn账号和密码,输入后等待svn拷贝到本地(项目较大时,需要数小时)
拷贝完后,cd 项目名 跳转到项目目录
git branch -a 查看分支事是否正确
2、将一些远程分支迁回本地分支
实际应用中,如果项目在svn有tags标签,先把远程(remotes)标签变成适合的本地git标签,运行:
cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
上面这一句,把tags去掉了remotes拷贝一份,
rm -Rf .git/refs/remotes/tags/*
这一句删除了带remotes的tags,所以运行前请确认已拷贝成功。通过以上两条命令会将原本以remotes/开头的远程tags变成git标签
然后,把refs/remotes下面剩下的索引页变成本地git分支:
cp -Rf .git/refs/tags/* .git/refs/tags/
rm -Rf .git/refs/remotes/*
3、gitlab中新建要一个名叫demo的项目
4、设置remote分支,并push
去掉默认远程仓库地址,把gitlab设置为默认远程库
git remote rm origin
git remote add origin ssh://git@192.168.224.134:30128/demo.git
上传所有分支
git push origin -all
----------------------------------如果你的项目就只是用gitlab管理代码,到这里就可以了----------------------------------------
5、如果有用gerrit代码审核工具,那么创建gerrit项目并同步gitlab的项目内容
1)、创建名为demo的项目
2)、gerrit采用docker部署,进入gerrit容器
cd /var/gerrit/review_site/git
rm -rf demo.git //刚创建demo项目的git目录
su-exec gerrit2 git clone --bare ssh://git@192.168.224.134:30128/demo.git //gerrit2是在gitlab中新建demo项目后,添加的一个项目成员gerrit2
3)、配置代码合并后自动同步gitlab代码
跳转到同级目录etc/,修改配置文件replication.config
cd ../etc/
vi replication.config
文件末尾加上:
[remote "demo"]
projects = demo
url = ssh://git@192.168.224.134:30128/demo.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
threads = 3
svn项目迁移至gitlab的更多相关文章
- SVN项目迁移到Git上(并带有完整的提交记录)
公司需求:早期的一些项目使用的是SVN,现在想要更换为Git,需要代码迁移并且能在Git上看到之前在SVN中的项目的提交记录,公司没有使用gitlab,代码都push在公司的服务器上,用的是Torto ...
- SVN项目迁移到GIT
源项目为SVN项目, 复制一份出来后. 在VS里无法修改 源码管理器的插件为GIT. 解决方法: 删除SVN插件信息 在解决方案文件中. 删除以下SVN信息就可以了 删除后:
- SVN代码迁移到GITlab
==================================================================================================== ...
- SVN迁移到Gitlab实践经历
svn 迁移至git操作手册 项目交付.版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等.git自带了从svn迁移至git的工具命令,可很好的对 ...
- 项目案例之GitLab的数据迁移
项目案例之GitLab的数据迁移 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方 ...
- Git SVN Clone 旧项目迁移到 Git 上
Git SVN Clone 旧项目迁移到 Git 上 很久使用的是 SVN,但由于项目重启,想改为 Git. 之前的 SVN 仓库是本地,所以在 git svn clone 一直不成功. 正确的方式: ...
- 使用git svn clone迁移svn仓库
使用git svn clone迁移svn仓库 clone命令可以指定很多参数,主要用到这些,你也可以使用git svn help查看完整的参数列表. git svn clone https://172 ...
- svn搬移到gitlab及使用
svn是一款非常简便,易用的源代码管理工具,用了这么多年,对它情有独钟.都说习惯最难改,那为何要搬移到gitlab上呢? 喜欢尝试新东西,前提还是git比较强大,svn有的它都有,svn没有的它也有. ...
- SVN库迁移整理方法总结
有时候需要从一台机器迁移svn存储库到另外一台机器,如果数据量非常大的话,没有好的方法是很不方便的,其实迁移svn跟迁移mysql差不多,也有导出导入的方案 以下是subversion官方推荐的备份方 ...
随机推荐
- nodeJs编写的简单服务器
一.简单的nodeJs写的 http 服务器 1.先Hello world,创建最简单的 Node 服务器(server.js) var http = require("http" ...
- 第一个 macOS 64位 kbmmw 服务器
前几天,Delphi 10.3.2 正式发布,这个小版本升级却增加了一个非常大的平台支持,增加了 macos 64位的支持,今天做一个macOS 64位的kbmmw应用,让kbmmw 服务器的应用更广 ...
- layui加载显示问题
1.layui.config({ base: '../layuiadmin/' //静态资源所在路径 }).extend({ index: 'lib/index' //主入口模块 }).use(['i ...
- 复盘一篇讲sklearn库学习文章(上)
认识 sklearn 官网地址: https://scikit-learn.gor/stable/ 从2007年发布以来, scikit-learn已成为重要的Python机器学习库, 简称sklea ...
- JavaScript: 自动类型转换-续
在上一篇文章中,我们详细讲解了JavaScript中的自动类型转换,由于篇幅限制,没能覆盖到所有的转换规则,这次准备详细讲解一下. 上次我们提到了对象类型参与运算时转换规则: 1). 在逻辑环境中执行 ...
- FreeBSD安装后使用su命令显示sorry的解决办法
FreeBSD中,可以使用su命令成为root用户,但FreeBSD对执行su命令的用户进行了更严格的限制,能使用su命令的用户必须属于wheel组(root的基本属组,组ID为0),否则就不能通过 ...
- Linux命令——gdisk、fdisk、partprobe
gdisk.fdisk MBR分区表请使用fdisk分区,GPT分区表请使用gdisk分区 MBR与GPT区别参考:Linux磁盘管理——MBR 与 GPT gdisk.gdisk这两个命令参数不需要 ...
- 关于free的使用疑惑
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "mainc26. ...
- X.509
参考:https://baike.baidu.com/item/X.509/2817050?fr=aladdin 标题:X.509 百度百科 在密码术中,X.509是定义公用密钥证书格式的标准. X ...
- mysql技巧一则-避免重复插入相同数据
今天解决的问题如下: 如果避免插入或更新一条数据表中相同名称的记录? , ,, , , '2019-06-18 07:20:48', '2016-06-18 07:20:48', 'manaual r ...