实战可行项目代码SVN转Gitalb

Linux IT敢客 1年前 (2018-01-05) 10532次浏览 已收录 4个评论 扫描二维码

        因趋势所向,公司的项目也要适应新的发张需要,代码管理从老套的 SVN 管理需要迁移到 Gitlab 上。所以这是一项新的挑战!
再前面的一篇内容中,我们讲述了如何部署 Gitlab 服务器,以及配置邮箱功能等等!具体可看之前的文章https://www.itgank.com/archives/2214 


        前言:

        svn 是一款非常简便,易用的源代码管理工具,历史悠久,用的地方也很多,但是也有许多不足的不足的地方,新的开发环境中,并行开发的需求较大,SVN 无法实现并行的代码管理,向同一个 SVN 提交会存在多人对同一文件提交的版本冲突,而 Gitlab 上就能很好的实现该并行开发功能,比如,每个开发人员可以建一个自己的开发流,而主的开发流 master 受限制,不允许开发人员提交,只有主程序员才有权限提交和合并代码的权限,这样对代码的控制也是比较方便管理,另外 Gitlab 上也有 Auto DevOps 的功能,这对运维人员也是非常方便的,运维人员也不会拉措代码的问题。总之,Gitlab 作为新兴的代码管理工具,相对于传统的 SVN 工具,有大大的优势!!!

        需求:
1、明确需求,是要将 SVN 的代码迁移到 Gitlab 上,而不是简单将 SVN 的代码拉下来,然后上传至 Gitlab 上,因为我们还需要原因 SVN 上提交代码的记录,也就是许多 Commit 的记录,(鄙人第一次就是这么傻傻的传完了代码)
2、对于代码的管理上要设置相应权限的人员,一个项目上应该是有主程序员,然后其他人员是开发人员,访客就随意了!

        操作:
1、我们登录原先 SVN 的服务器上,拉取一份 SVN 用户文件,一般是 SVN 的 conf 路径下的 passwd 文件中,等号前面的是用户名,等号后面的是密码
实战可行项目代码 SVN 转 Gitalb
2、创建一份 auth.txt,格式如下,第一列就是上面的用户名,第二列是等于号,第三列是要写保存在 Gitlab 上的用户名(其实不会在 Gitlab 上新建该用户的),第四个就是邮箱,必须以半角<>括起来
实战可行项目代码 SVN 转 Gitalb
3、然后在一个路径下比如 D:\Test\路径下进入 git_bash 模式,输入

git svn clone yoursvnaddress --authors-file=D:\\auth.txt  D:\\Test\\KEntity

以上 yoursvnaddress 更改为你自己的 SVN 地址
这是一个漫长的过程,有时候 git_bash 界面还会出现假死现象,需要多按几次回车,然后如果提示 xxx 在 auth.txt 文件中未定义就自己随便增加一个即可,因为有的 svn 上以前的用户被人删除了!
4、等待结束后,在 gitlab 上新建一个空的项目,比如为http://192.168.1.xxx/svn/xxx.git ,然后在 D:\Test1 目录下,打开 git_gui 工具,选择克隆已有版本库,输入http://192.168.1.xxx/svn/xxx.git ,路径选择 D:\Test1\xxx 克隆下来后,继续往下操作!实战可行项目代码 SVN 转 Gitalb
5、先备份 D:\Test1\xxx\.git\config 里面的内容。然后将 D:\Test\xxx\下面的所有文件包括隐藏的.git 文件夹都拷贝到 D:\Test1\xxx\路径下,全部替换!然后将备份的 D:\Test1\xxx\.git\config 还原回来!
6、之后我们在 git_gui 工具上新建一个分支(branch),名字为 svn,版本表达式写http://192.168.1.xxx/svn/xxx.git 然后点击新建!实战可行项目代码 SVN 转 Gitalb
实战可行项目代码 SVN 转 Gitalb
7、然后按照一下顺序点击
实战可行项目代码 SVN 转 Gitalb
8,之后登录 gitlab 的微博、界面,发起一个合并请求,将 SVN 的分支合并到 master 的分支,删除 SVN 分支,即可,这样就实现了全部的代码迁移,包括 commit 记录!效果图如下:
实战可行项目代码 SVN 转 Gitalb
双击一波 6666


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:实战可行项目代码 SVN 转 Gitalb
喜欢 (156)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. 嘿嘿嘿
    Amber2018-04-13 10:28 回复 未知操作系统 | 未知浏览器
  2. 这个不错,能保留之前的记录,以前我们都是直接交接代码上gitlab,之前的记录为零,学习了。!
    阿迪阿达2018-01-07 19:51 回复 Android 6.0.1 | Chrome 63.0.3239.111
    • IT敢客
      恩,之前我也是很快搞定,发现没有svn的commit记录!网上也有许多方法!
      果果君2018-01-07 19:53 回复 Mac OS X | Safari浏览器 6531.22.7
  3. 八达网:一元钱,只需一元钱,百万技术在线看,不用推广年赚二十万注册网址:http://www.fang2018.dabada.top/强烈推荐!
    八达网2018-01-06 12:50 回复 Windows 7 | 搜狗浏览器 2.X