基于git、gitlab源码管理解决方案
武汉交易通信息技术有限公司
2017年7月6日
1 宗述
1.1适用范围
本文档适用于产品实施部源码管理域
1.2术语解释
Push: 推送
Pull:拉取
Commit:提交
Clone:克隆
1.3 gitlab简介
gitlab是开源的源码协作软件。使用细粒度访问控制管理git仓库以达到确保你的源码安全。可执行源码检查和提高源码合并请求。每一个项目都有各自的问题跟踪日志。全球超过10万个组织在使用,gitlab是管理git仓库的最流行的软件之一。
1.4目标以及解决的问题
目标:
(1)项目访问级别设置。
(2)项目管理和跟踪。
(3)用户访问权限设置。
解决的问题
(1)项目备份繁琐。
(2)版本差异对比繁琐。
(3)版本回退困难。
1.5应用背景
(1)实施项目众多。全国各地的MIS项目、POS项目众多,需要对各个项目源码、释放包进行备份。采用传统的FTP方式备份源码,随着时间的推移,源码数量越来越庞大,从最新版本回归到历史版本,需要进行手工操作,并使用工具对比版本之间的差异,在这个过程中花费的时间成本较高。
(2)项目代码整理复杂。为了适应调用MIS接口的交易系统的更新迭代,需要修改MIS接口源码,并发布释放包。使用传统的方式管理源码,并没有记录源码修改日志,无法对源码进行版本递归,难以达到排查错误,代码优化的目的。
2 源码管理需求和问题分析
2.1项目源码权限控制
项目源码属于公司的财产,里面包含许多有价值的信息以及公司核心技术。如果源码核心技术的泄露被竞争对手获得,会对公司造成损失,降低市场产品的竞争力,因此必须对源码进行有效的控制。所以用户与当前项目是否存在关系,如果存在关系,用户在当前项目中担任怎样的一种角?项目应该对该用户开发哪些信息,授予哪些权限等等,是项目管理者考虑的问题
2.2项目源码版本备份与安全
采用哪种方式备份源码,如何确保源码安全,避免源码的丢失十分重要。
传统的备份方式会导致很多问题。复制整个项目目录来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单,不过坏处却不少:有时候会混淆所在的工作目录,弄错了文件丢了数据就没了退路。版本丢失后续的开发,只能从某个历史版本基础上重写开发,重复花费人力物力。如果备份服务器磁盘损坏了,这是灾难性的,公司正在运营的项目会到恶劣的影响,不能修复现有项目的功能缺陷以后续的开发。传统方式备份难以做到版本递归、查阅开发者提交的文件内容变更信息、提交日期;难以做到多开发者并行开发以后代码合并。
2.3项目的进度跟踪
没有使用版本控制的传统进度跟踪方式难以及时跟踪项目进度。项目开发者的工作处于哪一个阶段?一天的开发工作量是多少?代码编写质量如何?使用传统的方式只能询问开发者,阅读开发者的项目源码,十分不方便。如何保证项目进度,控制风险,提高工作质量和效率变得十分艰难。不能随时随地获知项目的进度、查看代码的变更、不能审核代码确保代码的质量。
3 基于gitlab解决方案
3.1 gitlab项目访问级别控制
访问级别的控制确保源码信息开放安全。gitlab中项目有3种访问级别。私有:必须授权特定用户,该用户才能访问项目。内部:登录到gitlab的用户可访问该项目。公开:无需任何认证的人都能访问该项目。
项目所有者可为该项目添加特定成员,并授予Guest、Report、Developer、Master角,每一个角对项目拥有不同的权限,Guest< Report< Developer<Master。也可以将某个用户
从项目中移除。下表是各个角的权限,Owner为项目用者
行为 | Guest | Report | Developer | Master | Owner |
创建一个新问题 | ✔ | ✔ | ✔ | ✔ | ✔ |
创建一个机密问题 | ✔ | ✔ | ✔ | ✔ | ✔ |
查看机密问题 | ✔ | ✔ | ✔ | ✔ | ✔ |
留言 | ✔ | ✔ | ✔ | ✔ | ✔ |
查看工作列表 | ✔ | ✔ | ✔ | ✔ | ✔ |
查看工作日志 | ✔ | ✔ | ✔ | ✔ | ✔ |
下载和浏览工作构建 | ✔ | ✔ | ✔ | ✔ | ✔ |
查看wiki网页 | ✔ | ✔ | ✔ | ✔ | ✔ |
拉取项目代码 | ✔ | ✔ | ✔ | ✔ | |
下载项目 | ✔ | ✔ | ✔ | ✔ | |
创建代码片段 | ✔ | ✔ | ✔ | ✔ | |
问题跟踪管理 | ✔ | ✔ | ✔ | ✔ | |
如何搭建git服务器标签管理 | ✔ | ✔ | ✔ | ✔ | |
查看提交状态 | ✔ | ✔ | ✔ | ✔ | |
查看容器注册表 | ✔ | ✔ | ✔ | ✔ | |
查看环境 | ✔ | ✔ | ✔ | ✔ | |
创建一个新环境 | ✔ | ✔ | ✔ | ||
使用环境终端 | ✔ | ✔ | |||
停止环境 | ✔ | ✔ | ✔ | ||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论