前言:

  最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程

  整体思路是进行一次导入:

  先通过subgit将svn整个import至本地,在与git上的项目进行合并.

1.硬件环境

  git:git version 2.7.4
  svn: 1.6.11

   subgit:3.2.2
2.下载subgit

  官网下载subgit: https://subgit.com/

  将subgit解压:    

tar -zcvf subgit-3.2.2.zip 

3.在gitlab上新建一个需要合并的项目

  进入gitlab管理界面,新建项目:lclctest  

git@xx.xx.xx.xx:lclc/lclctest.git (我这边新建了一个lclc的组)

  建好以备用.

4.进入subgit-3.2.2/bin 目录,使用configure命令  

./subgit configure http://ip:port/svn/lclctest  lclctest

完成后会有一些提示:  

1) Adjust Subversion to Git branches mapping if necessary:/root/lclctmp/tmp/subgit-3.2.2/bin/lclctest/subgit/config
2) Define at least one Subversion credentials in default SubGit passwd file at:/root/lclctmp/tmp/subgit-3.2.2/bin/lclctest/subgit/passwdOR configure SSH or SSL credentials in the [auth] section of:/root/lclctmp/tmp/subgit-3.2.2/bin/lclctest/subgit/config
3) Optionally, add custom authors mapping to the authors.txt file(s) at:/root/lclctmp/tmp/subgit-3.2.2/bin/lclctest/subgit/authors.txt
4) Run SubGit 'install' command:subgit install lclctest

意思是进行一些配置,然后进行install

  配置config:由于3.2.2默认是配置好的,可以不进行配置  

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
branches = branches/features/*:refs/heads/features/*
branches = hotfixes/*:refs/heads/hotfixes/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*

  配置用户映射文件 author.txt 格式为:svnUser = Git User <user@example.com> (也可以不修改)
5.进行install

$ ./subgit install lclctest

  此步将连接svn,需要耗时一段时间.

  完成后就把svn代码迁移到本地库了,这时候就需要用git push到远程库中

6.clone版本  

 git clone ./lclctest lclctest.git

7.进入lclctest.git目录  

git remote set-url origin git@yourip:lclc/lclctest.git(之前创建的git项目)

git push origin master

  在push的时候发现提示填写密码:  

 git@ip's password:

  此时说明需要进行身份验证,我们给git添加一个keygen就行了

  7.1:生成keygen 

cd ~
ssh-keygen -t rsa -C "your_email@example.com"

  生成的文件在 .ssh文件下有 id_rsa和id_rsa.pub文件

  7.2:上传keygen

  打开gitlab的管理界面

  

将id_rsa.pub文件中的内容复制到Key的文本框里.

再执行步骤7的git push origin master命令上传master

8.上传分支.

  进入lclctest.git目录,使用命令查看分支  

git branch -a

结果:

* masterremotes/origin/HEAD -> origin/masterremotes/origin/bugfixremotes/origin/developremotes/origin/featureremotes/origin/master

本项目一共有3个分支,分别是bugfix,develop,feature,分别进行上传

git push origin remotes/origin/feature:refs/heads/feature
git push origin remotes/origin/bugfix:refs/heads/bugfix
git push origin remotes/origin/develop:refs/heads/develop

注意:冒号后面为远程库中的地址,必须以refs/heads开头.

9.上传tags

git push --tags

参考资料:

  http://lattecake.com/post/20051

  http://stackoverflow.com/questions/23251394/subgit-import-and-multiple-branches-directories

转载于:https://www.cnblogs.com/lic309/p/6290597.html

使用subgit进行svn迁移至git(branch,tags)相关推荐

  1. 从SVN迁移到Git(包括SVN历史纪录)【最系统的讲解】

    从SVN迁移到git有很多方法,最简单的就是使用git包自带的git svn命令(git v1.7及以上).除此之外还有一些第三方的专门的转换工具如http://www.subgit.com/,htt ...

  2. 项目如何从 SVN 迁移到 Git

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 版本管理 SVN版本管理:场景命令实战 SVN版本管理:两种开发模式 GIT版本管理:场景命令实战 GIT版本管理: ...

  3. Gitea:从SVN迁移到Git

    目录 环境信息 迁移步骤 SVN和Git都是优秀的版本管理工具.不幸的是,对于从SVN迁移到Git的过程.命令和说明,网上不少文章存在误导性.因此本文以Gitea为例,演示从SVN迁移到Git的详细过 ...

  4. SVN迁移到Git的过程(+ 一些技巧)

    SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...

  5. Git学习文档之二 应用总结-svn迁移到git

    ##svn迁移到git 在 Subversion,每个提交者在都在主机上有一个用户名,记录在提交信息中.如果想让这条信息更好的映射到 Git 作者数据里,则需要 从 Subversion 用户名到 G ...

  6. SVN迁移至GIT,并附带历史提交记录

    文章目录 SVN代码同步至GIT 背景 准备工作 操作步骤 SVN代码同步至GIT 背景 近年随着信息工程的多元化发展,GIT逐渐取代SVN成为主流的版本管理工具,部门的项目代码也决定迁移至git进行 ...

  7. 将项目从 SVN 迁移到 GIT

    场景 项目开发中,项目原本是用的SVN,已经用了一年了,现在公司要抛弃SVN用Git,要求把SVN的代码直接搬过去Git,并保留之前的历史提交记录. 操作步骤 找到已经被svn管理的项目的根目录 Wi ...

  8. svn迁移到git报Checksum mismatch: TapiParser/jar/tapiParser/tapiParser.jar c7a0bbbcc00e06bf963e4499faf829

    由于对git和svn都不是很熟悉,被分到这个任务是很懵的,好在有操作手册跟着操作,没有难度,但是在迁移过程中就报了错: Checksum mismatch: TapiParser/jar/tapiPa ...

  9. svn迁移到git实际操作(亲测有效)

    要把svn项目迁移到git,话不多,直接上 首先svn与git安装好 1.到svn项目目录右键选中gitbash打开窗口,执行获取用户并映射成git样式账号命令如下: svn log -q | awk ...

最新文章

  1. 清华唐杰团队造了个“中文AI设计师”,效果比Dall·E好,可在线试玩
  2. cisco配置静态NAT
  3. 使用Axis2创建一个简单的WebService服务
  4. 来晚了--SALTSTACK要弄起
  5. 一学即懂得计算机视觉
  6. 腾讯X5联手白鹭Egret Runtime 合作共推HTML5游戏发展
  7. Linux 定位网络不通问题
  8. [开发技巧3]不显示报表直接打印
  9. 【C++深度剖析教程19】前置操作符与后置操作符
  10. dos命令窗口光标闪烁_10 分钟上手 Vim,常用命令大盘点
  11. android runnable内存泄漏,这个Runnable可以防止内存泄漏吗?
  12. ShopXO开源电商系统源码
  13. 线性规划图解法求最优解_线性规划的图解法6.ppt
  14. spring中注解及原理
  15. 最小生成树算法之Prim(普里姆)算法
  16. 关于公司建设的一些思考
  17. AWS——API Gateway
  18. 微信群聊图灵机器人 复制直接用
  19. 【流程向】模型复原与Unity渲染
  20. 自学就能轻松学会搭建网站的步骤教程

热门文章

  1. JavaScript及jQuery选择器(二)
  2. Asp.net Ajax 客户端页面生命周期原生事件
  3. PHP快速入门教程:WHILE循环示例
  4. 利用冒泡排序法实现select option按中文排序组件
  5. 如何开始学习编程?这 3 步很重要
  6. MySQL服务端的登录和退出
  7. 什么是HystrixDashbord/如何使用?
  8. 四大对象是什么时候创建的?
  9. 把第三方jar包放入本地私服
  10. 通过反射越过泛型检查