我们已经使用GitLab一年多了来托管我的学生的项目。
TL;DR;EDIT:曾经有一个演示,但现在它不见了。您可以免费注册并创建一些公共存储库。
我必须说我真的很满意。
由于鼓励在此站点上对您的要求进行迭代,因此我会这样做。
相对较好的网络用户界面:您可以浏览源和历史记录、统计信息(全局和每个用户)和提交图(如 Github 上的“网络”)。您可以从 GUI 评论每一行提交,这是一个很棒的功能!抱歉,我无法提供任何屏幕截图,我必须手动匿名。通常它类似于 Github。
支持 git 和/或 mercurial。对两者的支持是一个加号。仅限 Git。
SSH shell(存储库必须可以通过 ssh 访问,而不仅仅是 http,即使至少 git 相对较好地支持所有通过 http 的操作):就像在 Github 中一样。HTTP 用于只读访问,SSH 用于读写。
权限:至少
私人/公共存储库:它就在那里。
只读和完全访问权限:您可以定义角色(我相信默认值是 master、developer、reporter、guest)。
为 web UI 和 SSH 设置相同的权限(授予/修改权限时,它应该反映到两者):我相信它就像那样工作,但由于我现在没有管理员访问权限,所以很难测试。但是,再次,它就像 github。
最好集成到 LDAP(用户和组的权限):我们有。每个人都通过 ldap 登录,员工的权限比学生多。但我真的不能说这是否很容易,这只是可能的。
拉取请求(又名合并请求):存在。
管理工具:创建存储库,授予访问权限:全部来自 Web 界面,可以很好地搜索用户并能够定义用户组。
简单的问题跟踪器:创建票证、评论、关闭、标签/标签:是的,它就在那里。不知道你说的标签很硬是什么意思,看不到这样的东西。里程碑?
最好搜索,包括门票、用户、项目、文件名和内部源代码:这可能是 gitlab 最不花哨的功能。您可以搜索用户/项目/组,可以找到文件的内容,但不能找到文件名。我觉得它很笨拙。
最好从 Web UI 分叉:存在。
最好在 Linux 中运行:显然 ;-)
升级过程:如果您了解您的系统,这非常简单。每个版本都有它自己的升级指南,它总是与默认的推荐设置(即路径、用户、命令等)有点相关。如果您有一个非标准(按照他们的术语)系统,如果您自定义设置,您将不得不花一点时间来拉皮条,但这并不复杂 - 主要是一个新的克隆,运行几个脚本,你'重做。从来没有任何问题,但我很久以前就停止了这个过程。 更新Gitlab 现在包括(从 6.4.2 开始)一个简单的升级脚本。假设您有标准的系统布局,实际的升级过程现在是一个命令。
它正在积极开发中,每个月都会发布一个新版本,因此绝对值得一试。它是开源的,可免费用于商业用途。
Gitlab 不需要互联网连接即可工作。您将需要 Internet 来设置 Gitlab,因为它从 RubyGems 下载其依赖项。或者,您可以构建一个RubyGems 镜像,或者在另一台服务器上进行安装并将完整的安装目录(默认情况下/home/git/
)复制到该服务器。
截屏