[关闭]
@Pigmon 2020-03-02T12:50:40.000000Z 字数 1156 阅读 3351

码云(Gitee)企业版-对比-公司自搭建GitLab社区版

代码管理


0. 简述

先说个人(袁胜)的建议是使用码云(下称Gitee)企业版。
以下会逐个列出几个我认为比较重要的功能,对两个选项做对比。
因为时间和用户权限关系,两个产品都无法深入体验,如有错误请批评指正。

1. 用户管理

1.1 权限粒度

针对代码仓库来说,最主要的区别是:gitLab社区版的用户权限是以分支来划分的,而Gitee是可以达到目录和文件的粒度。

Gitee的git代码仓库中,文件和目录的最低权限只能达到只读,不能设置不可见。我猜测这样做的目的是,如果有用户无法获得整个项目的代码,也就无法编译调试。而设置只读的目的是,一部分用户无法向只读的目录或文件中提交任何更改,也无法删除或添加新文件(向只读目录)。

1.2 不可见的目录和文件

如果某项目有特殊的需求,需要部分目录和程序对部分用户不可见,则可采用svn作为后台。而gitee也是支持svn代码仓库的,gitLab社区版不支持svn。但这种方法会给协作开发带来不便(我猜测这也是git没有实现这个功能的原因),所以这类需求建议采用将项目分开的方式。

2. 安全机制

Gitee企业版可以设置关键操作的钉钉和微信等工具的警告消息;
Gitee可以设置IP地址白名单;
Gitee可以设置仓库禁止部分用户push以外,还可以允许push操作但禁止push -f操作;而Gitlab只可以通过将仓库设置为Protect禁止所有developer用户的push操作。
Gitee的日志记录更详细,据它自己说可以做到所有操作都留有痕迹;

3. 容错机制

Gitee有仓库的定期自动快照功能,而GitLab是使用git的标签功能手动保存快照;

4. 文档功能

Gitee和GitLab都是只支持一个轻量级的Markdown编辑器(足够用于写代码文档),Gitee在此基础上增加了以下几个功能:

5. 发布和部署

这点上来说使用两者没有本质差别,DevOps工具在Gitee中是插件形式存在的,需要在页面上手动安装配置;
另外考虑到我们项目的特殊性,今后可能采用NOXAPK工具进行发布和部署,也很可能需要对NOXAPK进行二次开发;

6. 运维人力成本

Gitee企业版运维成本较低。
Gitee企业版:依托于自带的项目管理工具,在页面上管理成员和仓库等内容;
GitLab社区版:需要系统级的管理员在Linux命令行操作大部分内容;

7. 服务可靠性

目前没有深入使用,但觉得付费使用的Gitee企业版相对自己维护的Gitlab服务器,应该可靠性更高。
自己搭建的服务器,存在多个用户拥有超级权限的问题,系统级的操作权限超越代码仓库级的权限,有造成破坏的可能性。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注