git服务端程序比较

git服务端程序比较

  • 引子
  • 功能
  • 权限控制粒度
  • 用户管理方式
  • 软件依赖
  • 安装难易程度
  • 使用难易程度
  • 资源消耗
  • 中文支持
  • 总结

引子

最近试用了几个git服务端程序,把当前试用的感受和比较列举一下。
当然,理论上说,git是不需要服务端程序的,安装完git之后,可以使用ssh来登录,使用主机的用户管理来做用户权限管理,但是对于windows用户似乎有点难,操作有点复杂。所以才有了一众在git之上开发的服务端程序。这些程序各有各的优点,可以根据自身的需要选择。
目前试用了gitlab,gerrit,gogs,还有一个gitolite没试用,但是也从文档中0了解了一些,也一并列举。
下面从功能,权限控制粒度,用户管理方式,软件依赖,安装难易程序,使用难易程度,资源消耗等方面进行比较

功能

总体来说,gitlab是功能最全的,包含了用户管理,代码管理,issue管理,持续集成等功能,使用pull request的方式,可以做到代码审查的功能。
gerrit配合openLDAP可以做到用户管理,它的代码审查功能是它的亮点。
gogs可以认为是简化版的gitlab,也包含了用户管理,代码管理,issue管理,也可以使用pull request的方式做到代码审查。
gitolite从文档中看,似乎只做到了用户管理。

权限控制粒度

gitlab和gogs可以以库为单位来设置权限,可以设置为只读和可读写。
gerrit也可以以库为单位进行权限设置。但是可以对用户设置更多的权限,可以赋给审核权限,提交权限,直接push权限等等。
这三个软件是否可以以分支为单位进行权限控制还不太了解。
gitolite从文档看,可以做到分支级的权限控制。

用户管理方式

gitlab和gogs都可以直接使用web端来直接创建用户,非常方便。
gerrit使用的是openLDAP来管理用户,也可以配合phpldapadmin来使用web端来管理用户。
gitolite从文档看,是通过修改文件来进行管理的

软件依赖

gitlab和gogs都依赖于数据库,gogs支持sqllite,所以用起来也不是很复杂。
gerrit本身只关注代码审查,需要依赖openLDAP来管理用户。
gerrit和gitolite都是通过配置文件来管理配置,可以直接使用git来管理,做到了自举。

安装难易程度

从使用docker安装来说,gerrit安装时由于依赖于openLDAP,是遇到坑最多的。但是最终安装完成后,回头看,有好多问题是由于使用了win7安装导致。
gitlab使用了docker安装和在ubuntu虚拟机下安装,都还算比较顺序。除了内存分配了2G,导致502错误之外。
gogs是安装最简单的。虽然只试用了docker安装,但是从文档中看到安装方式还是挺多的。

使用难易程度

gitlab和gogs使用起来对于有github基础的人来说,是挺简单的,与github很像。其中gogs由于提供的功能也没那么多,摸索起来还是挺快的。
gerrit的摸索还是费了一些时间的,特别是change的处理,还有强大的权限管理功能。
gitolite从文档看,需要配置文件,有点吓到了。

资源消耗

gitlab的资源消耗是值得注意的,2G的内存不够,需要分配至少3G的内存,查看监视,也是使用了2.16G的内存。
gogs和gerrit用起来没有发现会影响主机操作。所以可能资源消耗是比较少的。
gitolite从文档看,消耗也是很少的。

中文支持

gitlab可以设置为中文,gogs天然支持中文
gerrit和gitolite不支持中文。

总结

总结一下各个软件的亮点和缺点

软件名 亮点 缺点
gitlab 功能强大,可以管理大型项目 资源消耗大
gogs 中文支持好,使用简单
gerrit 强大的代码审查功能 安装配置比较复杂
gitolite 可以做到分支级别的权限管理,资源消耗低 配置使用文件完成

你可能感兴趣的:(git服务端,git,gitlab,gerrit,gogs)