观点:GitHub vs GitLab

作者:Matt Lee

自由软件应该使用自由工具,而不是微软拥有的 GitHub。

所以,微软收购了 GitHub,许多人感到困惑或担忧。当任何大公司收购任何小公司时,这都不是什么新鲜事,人们有理由担忧,尽管我认为他们担忧的时机不对。像微软一样,GitHub 也为自由和开源软件做出了一些有用的贡献,但我们不要忘记 GitHub 的主要产品是专有软件。而且,它不仅仅是一些无害的 Web 服务;GitHub 制造和销售一种专有软件包,您可以下载并在自己的服务器上运行,名为 GitHub Enterprise (GHE)。

让我们回顾一下我们是如何走到这一步的。BitMover 制作了一个名为 BitKeeper 的工具,这是一个专有的版本控制系统,允许免费软件项目免费使用许可证。2002 年,Linux 内核切换到使用 BitKeeper 进行版本控制,尽管一些著名的开发人员做出了高尚的选择,拒绝使用这个专有程序。许多其他人没有这样做,在许多年里,内核开发都受到 BitKeeper 限制性非商业许可的阻碍。

2005 年,在 OSDL 工作的 Andrew Tridgell 开发了一个绕过此限制的客户端,结果,BitMover 取消了所有 OSDL 员工(包括 Linus Torvalds)的 BitKeeper 许可证。最终,所有非商业许可证都被停止,新的许可证包含阻止开发替代版本控制系统的条款。由于这个原因,两个新项目诞生了:Mercurial 和 Git。Git 在 2005 年的短短几周内创建,迅速成为 Linux 开发的版本控制系统。

专有版本控制工具在自由软件开发中并不常见,但专有协作网站已经存在一段时间了。仍然存在的最早的协作网站之一是 Sourceforge。Sourceforge 是在 20 世纪 90 年代后期由 VA Software 创建的,该项目背后的代码于 2000 年发布。

这种情况很快发生了变化,并且该项目被关闭,然后变成了 Sourceforge Enterprise Edition,一个专有软件包。运行 Sourceforge 的代码被 Fork 成 GNU Savannah(后来的 Savane)和 GForge,至今仍被 GNU 项目和 CERN 使用。当我上次写到这个问题时,几乎正好是十年前,Canonical 雄心勃勃的 Launchpad 服务仍然是专有的,后来在 2009 年得到了补救。Gitorious 于 2010 年创建,多年来一直是挑剔的自由软件开发人员的 Git 托管平台,因为 Gitorious 的代码完全公开,并根据 FSF 富兰克林街声明之后出现的新一波 AGPL 许可项目的有利条款获得许可。Gitorious 也可悲地不再与我们同在了。

然而,一切并没有丢失,在过去的几年里,一个替代方案一直在非常积极地开发中:GitLab。GitLab 是一家公司——GitLab, Inc.——以及两个项目的名称:GitLab CE 和 GitLab EE。GitLab EE 是一个开放核心项目,由自由软件 CE 和各种专有附加组件组成。GitLab, Inc. 非常坦诚地说明了这一事实。然而,GitLab CE 不是您传统的“社区版”产品,其中绝大多数功能都被锁定在企业版中。许多备受瞩目的自由软件项目,例如 Debian、GNOME 和 GNU,都拥有自己的 GitLab CE 服务器,在许多情况下,GitLab CE 正被用于增强以前使用 Savannah 和 GForge 的项目,为它们提供了新的生命力和旧软件平台所缺乏的新可见性。

为您的自由软件项目选择专有工具和服务最终会向下游开发人员和您的项目用户传递一个信息,即所有用户(包括开发人员)的自由并非优先事项。自由软件运动始于 1983 年,当时为自由软件开发人员创建自由操作系统创建了初始工具——编辑器、编译器、调试器和链接器。最终,所有自由软件项目本质上都是政治性的。作为以直接促进用户自由和自由共享社区的方式许可的软件的创建者,我们的努力最好通过支持这些相同理想的工具来服务。

因此,如果您有能力并且有需要,请为您的项目运行您自己的 GitLab CE 副本。如果可以,请向更广泛的自由软件社区开放它,并允许所有自由软件项目使用尊重所有用户自由的基础设施。GNU、Debian 和 GNOME 已经做到了。下一个是谁?

哦,让我们尽快解决 GitLab CE 的 bug #4013,拜托。

Matt Lee 是一位资深的自由软件开发人员,他将时间分配在倡导自由软件和为电视和网络编写和导演喜剧之间。他住在波士顿,可以在 Twitter 上找到他,发布大量无稽之谈,账号是 @mattl。
加载 Disqus 评论