最近在使用华为软件开发云进行开发项目管理,目前华为软件开发云支持500M的免费项目空间,而且还可以在线编译和构建,不用担心开发环境和生产环境的不同,很好的体现了DevOps的开发理念.

之前一直是用svn做代码管理,而华为软件开发云是使用目前国外比较流行的Git进行代码版本控制.在网上查询了迁移方式,发现Git本身有命令可以直接克隆SVN的代码库,而且迁移后能保持原SVN的提交记录.以下是总结的SVN代码库向华为软件开发云迁移的过程.

主要步骤

1.通过git svn clone命令将SVN代码库克隆至本地

2.华为开发云创建代码仓库,获取Git仓库地址

3.本地新建test分支,提交后合并至master分支.开发云代码库中根据引导完成代码合并. (新建分支合并的原因后面会讲.)

准备条件

1.准备要迁移的svn代码库地址;本地安装Git

2.登录华为软件开发云(https://www.hwclouds.com/devcloud/),并已创建好项目.

完整迁移流程

1.通过git svn clone命令将SVN代码库克隆至本地

$ git svn clonehttps://SVN服务器地址/ibeisi.iPMSystem/ --no-metadata --trunk=trunk

#查看SVN提交记录

$ cd ibeisi.iPMSystem/

$ git log

2.华为软件开发云创建代码仓库,获取Git仓库地址

代码仓库创建好之后,需根据在线帮助,添加SSH秘钥,步骤很详细,此处就不作赘述.

SSH秘钥主要是本地与华为软件开发云代码库的一个管理,无需每次通过用户名和密码验证

打开代码仓库,拷贝代码仓库地址

3.根据步骤2中获取到的代码仓库地址,本地添加远程仓库地址

$ git remote add origin

git@codehub.devcloud.hwclouds.com:3bf9c1ed148142d880d759e80100b923/iPMSystem.git

#拉取远程分支

$ git pull

可以看到代码仓库中默认已建好主分支,如果无需保留SVN原提交记录,可以直接将代码通过master分支进行提交(commit)和推送(push);但我想保留原提交记录,所以下面以新建分支合并到master的方式进行代码上传。

4.本地新建分支test,并发起与master分支合并请求

$ git branch test

#checkout命令会让当前切换到test分支,及后续操作都只影响test分支

$ git checkout test

#新建空文件,原因是若没有更改git不会进行push操作

$ vi test.txt

#空文件添加至分支中

$ git add .

#git的commit命令只是在本地提交,并不会上传至代码库.

$ git commit -m "上传代码新建缓存分支"

#通过以下push命令可以发起test与master分支合并请求.

$ git push--set-upstream origin test

5.刷新代码库页面(或重新打开代码库),可以看到合并请求的处理指引,按照指引操作即可完成合并.

可以看到原svn代码库的提交记录都被完整保存了下来.

至此, svn代码库可以说完整地迁移到了华为软件开发云的CodeHub中。

SVN如何迁移到Git?的更多相关文章

  1. SVN仓库迁移到Git的完美解决办法

    参考文章Converting a Subversion repository to Git 1 使用git svn clone 拷贝svn仓库 cd ~/test_repo git svn clone ...

  2. svn版本控制迁移到git

    获得原 SVN 仓库使用的作者名字列表 因为导入到git需要配置原作者(svn提交人)和git账户的映射关系 其格式为: vim authors-transform.txt taoxs = xsTao ...

  3. SVN项目迁移到Git上(并带有完整的提交记录)

    公司需求:早期的一些项目使用的是SVN,现在想要更换为Git,需要代码迁移并且能在Git上看到之前在SVN中的项目的提交记录,公司没有使用gitlab,代码都push在公司的服务器上,用的是Torto ...

  4. SVN仓库迁移到Git遇到的两个问题和解决办法

    OS: CentOS 7.0 准备: git svn git-svn sudo yum install git sudo yum install subversion sudo yum install ...

  5. svn 版本迁移到 git 仓库

    1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser ...

  6. SVN项目迁移到GIT

    源项目为SVN项目,  复制一份出来后. 在VS里无法修改 源码管理器的插件为GIT.    解决方法:  删除SVN插件信息 在解决方案文件中. 删除以下SVN信息就可以了   删除后:

  7. 使用git svn clone迁移svn仓库

    使用git svn clone迁移svn仓库 clone命令可以指定很多参数,主要用到这些,你也可以使用git svn help查看完整的参数列表. git svn clone https://172 ...

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

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

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

    关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...

随机推荐

  1. jQuery中append(),prepend()与after(),before()的区别

    在jQuery中,添加元素有append(),prepend和 after(),before()两种共四个. 根据字面意思我们可以看出他们分别是追加,添加和之前,之后,意思相近.同时他们又都有添加元素 ...

  2. iOS关于JSONKit解析Unicode字符内容出错,问题出在\u0000

    JSONKit虽然很强大,但是一些特殊的Unicode,比如\u0000是无法解析的. 在github上作者解释了这个问题,说这个是内容提供的错误,不符合标准的内容,所以他不认为这个是自己的错误,这个 ...

  3. Spring配置数据源的几种方法

    一:数据源的配置1.通过JNDI配置数据源    1.在tomcat context.xml中配置数据源        <Resource name="jdbc/ds" au ...

  4. php面向对象(一)---2017-04-17

    重点:定义类与实例化类:访问修饰符:构造函数 一.面向对象 面向对于与面向过程的主要区别在于:前者包含类和对象的概念 二.类和对象   1.类是由众多对象抽象(归纳总结)出来的东西  代表所有对象的特 ...

  5. jdk8的新特性 Lambda表达式

    很多同学一开始接触Java8可能对Java8 Lambda表达式有点陌生. //这是一个普通的集合 List<Employee> list = em.selectEmployeeByLog ...

  6. Filter execution threw an exception 错误

    Filter execution threw an exception 错误,我在web.xml中配置了一个filter用spring来解决懒加载的问题,为什么就会包这个错 java.lang.NoS ...

  7. MYSQL安装(Linux)

    1.首先检查下系统是否已经有mysql相关的安装项 rpm -qa|grep mysql 2.如果有,先删除 rpm -e --nodeps mysql-libs--.el6_5.×86_64 3.接 ...

  8. IP设置

    由于家里的IP地址与公司的不一样,每次都要修改很麻烦,所以自己只做了一个IP修改bat. 打开记事本,把一下代码复制到记事本里,保存成bat就OK了.在23行设置自己的IP地址就可以了. @echo ...

  9. QT链接数据库

    在介绍QT与数据的链接问题上,我在这里就不介绍关于QT环境与mysql.sqlite3环境的安装步骤了,以下的所有的操作都是建立在你已经安装了所有环境的基础上的.好的,那我们就具体来看一看QT环境中怎 ...

  10. java抽象类和抽象方法之间的关系

    抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所 ...