SVN迁移到Gitlab实践经历
svn 迁移至git操作手册
项目交付、版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等。git自带了从svn迁移至git的工具命令,可很好的对svn上的提交历史做迁移和映射,操作简单方便。但是初次接触不熟练,这里做一个总结和记录,内容尽量简单化。争取提供给刚刚接触git和准备迁移的用户一个简单易懂的方案。
旧svn服务器:192.168.1.185(对生产的敬畏)
新svn+git服务器:192.168.1.203
我是把旧的svn通过dump下来传到203的svn上面这需要点时间,这个原理跟mysql的dump一样
把SVN上的代码仓库迁移到Gitlab上,实际上就是把SVN仓库转变成Git仓库,并且希望能保留原SVN仓库的Commit等历史记录,这一点很重要。
SVN迁移到Gitlab需要安装git-svn
yum install -y git-svn
建立users.txt(存储svn账号与gitlab上账号的关联性)
svn log svn://192.168.1.203 -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > ./users.txt
得到的结果:

然后开始把SVN仓库转变成Git仓库,执行以下命令:
git svn clone svn://192.168.1.203/XinglvTmc/ --no-metadata --authors-file=users.txt --trunk=trunk --tags=tags --branches=branch XinglvTmc
添加GitLab到Git源信息
git remote add origin URL
注:目的地gitlab仓库地址
5. 将trunk, branches等上传
git push origin --all
为了将标签变为合适的 Git 标签,运行
# cd my_project
# cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
# rm -Rf .git/refs/remotes/origin/tags
这会使原来在 remotes/origin/tags/ 里的远程分支引用变成真正的(轻量)标签。
接下来,将 refs/remotes 下剩余的引用移动为本地分支:
# cp -Rf .git/refs/remotes/* .git/refs/heads/
# rm -Rf .git/refs/remotes
git remote add origin http://192.168.1.203/root/xinglvtmc.git/
git fatal: 远程 origin 已经存在。
不小心将git远程地址配错了,再次配置提示以下错误:
fatal: 远程 origin 已经存在。
此时只需要将远程配置删除,重新添加即可;
git remote rm origin
git remote add origin https://github.com/***/WebCrawlers.git
再次提交文件即可正常使用
粗心造成的小错误,顺便说一下,如果git没有commit就执行push操作会出现以下错误
fatal: unable to access 'https://github.com/***/WebCrawlers.git/': Empty reply from server
解决:只需要先commit 在 push即可
gitlab删除已上传项目中的文件夹

SVN迁移到Gitlab实践经历的更多相关文章
- SVN迁移到GitLab,保留提交记录
		
1.下载GitBash 此工具自带git svn命令,无需再下载git-svn工具 2.GitBash终端中输入以下命令 git svn clone svnurl srcPath 3.push本地仓库 ...
 - svn迁移到git仓库并保留commit历史记录
		
svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...
 - 使用subgit进行svn迁移至git(branch,tags)
		
前言: 最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程 整体思路是进行一次导入: 先通过subgit将svn整个import至本地,在与git上的项目进行合并. 1 ...
 - SVN迁移Gitlab步骤
		
概述 公司要求将之前使用SVN进行管理的项目迁移到Gitlab进行项目管理,但是运维连不上我们这边的SVN服务器,于是我们就得自己将SVN项目迁移到Gitlab.Yeah!终于有我表现的机会了. 要求 ...
 - 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录
		
公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...
 - git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
		
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...
 - ②将SVN迁移到GitLab-多分支多标签迁移
		
之前我们介绍了<①将SVN迁移到GitLab-单分支迁移>,文中研究了svn迁移到git单分支的操作过程,本文针对实际开发过程中svn使用到的trunk.branches.tags情况进行 ...
 - ①将SVN迁移到GitLab-单分支迁移
		
将SVN上的代码迁移到GitLab上,实际原理是将所迁移的服务器上,拷贝SVN上的相关代码,在服务器上生成Git相关仓库,然后推送到GitLab仓库,并保存SVN相关的提交记录,分支,标签等信息. 一 ...
 - 前端小微团队的Gitlab实践
		
疫情期间我感觉整个人懒散了不少,慢慢有意识要振作起来了,恢复到正常的节奏.最近团队代码库从Gerrit迁移到了Gitlab,为了让前端团队日常开发工作有条不紊,高效运转,开发历史可追溯,我也查阅和学习 ...
 
随机推荐
- LeetCode 第 152 场周赛
			
一.质数排列(LeetCode-1175) 1.1 题目描述 1.2 解题思路 先统计出1-n中有多少个质数,得到质数个数\(x\),剩下的数\(y = n - x\): 使用排列组合公式得出结果 \ ...
 - git 比较两个分支不同的commit
			
比如我们有 2 个分支:master, dev,现在想查看这两个 branch 的区别,有以下几种方式: undefined 1.查看 dev 有,而 master 中没有的: 1.查看 dev 有, ...
 - java 抽象类为什么不能被实例化?
			
我把CSDN论坛里面的一个帖子内容list到下面,自己看着理解,东家一言,西家一语,杂合起来,基本上也就理解了java中的抽象类为什么不能被实例化了. 因篇幅有限,只能罗列部分留言 以下内容不分先后顺 ...
 - element-ui框架的el-dialog弹出框被遮罩层挡住了
			
解决办法 在el-dialog标签里添加 :modal-append-to-body='false'
 - matlab将多张图片合成视频
			
文件夹内多张图合成为视频: route='D:\文件及下载相关\桌面\**\Matlab_code\result';%基本路径 %d=dir([route '\*.bmp']);%.jpg格式 Wri ...
 - Quartz调度系统入门和调度高可用实现方案
			
** 版本:2.2.1 ** Hello world: https://www.jianshu.com/p/810400e6a274
 - 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_11-课程详情页面静态化-课程信息模板设计
			
测试模板 页面的模板已经做好了 直接那来用 测试模板,把这个模板copy到这个测试freemarker的resources目录 远程调用 获取数据 返回模板的文件名 tomcat不支持ssr.ngin ...
 - sbt配置文件
			
# Set the java args to high -Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m # Set the e ...
 - ubuntu 18.04下greenplum安装笔记(二)安装Greenplum的失败的尝试
			
之前对Linux环境进行了搭建,现在开始进行Greenplum的正式安装. 下载 进Greenplum的官网:https://greenplum.org/download/ 可以发现,对于ubuntu ...
 - 树莓派连接显示器后设置ssh服务开机自动开启
			
进入命令行,然后执行: cd /boot sudo touch ssh sudo restart -r now 然后就重新启动了,重启好了会有依据提示. 然后可以输入ssh localhost进行一下 ...