Phabricator 管理员手册/比较 Phabricator 和...
人们经常将 Phabricator 与其他技术进行比较,例如 Bitbucket、GitLab[1][2]、GitHub[3]、Launchpad[4]、Mantis 错误跟踪器等。
话虽如此,没有哪个解决方案比另一个解决方案“更好”,本页将帮助您了解各种类似技术的設計方式及其不同之处。
通常这仅仅是主观选择和习惯的问题,但确实有一些区别,例如不同的业务工作流程等。
Phabricator 与其他软件和服务的关键区别
GitLab、Launchpad、Phabricator、Phorge 和 Mantis 错误跟踪器都是自由软件。这意味着您有权学习、修改、改进和共享它们。这意味着您可以
- 在您自己的服务器上自行托管这些平台(100% 的数据所有权)
- 拥有内部部署解决方案(您的服务器,但有官方协助)
- 找到一个服务提供商(有人在他们的基础设施上负责所有事情)
而 Bitbucket 和 GitHub 则是专有的软件即服务,这意味着他们负责所有事情,但您无权学习、修改、改进和共享平台(您不能将其安装在您的服务器上等)。
GitHub、GitLab、Phabricator 和 Launchpad 可以“作为服务”使用,由其各自的公司提供。实际上,Phabricator 官方服务不允许每个人免费注册。无论如何,Phabricator、GitLab 和 Launchpad 可以被一些提供商“作为服务”使用(本书不推荐)。
Phabricator 和 Phorge 支持多种源代码版本控制系统:git、Subversion、Mercurial。此功能非常独特。
GitLab 和 GitHub 只支持 git。
在 Phabricator 和 Phorge 中,优先考虑软件协作而不是补丁。这通过 Web 界面和使用 Differential 命令行工具来处理。
GitLab、GitHub 是基于拉取请求构建的(可以交互的单独存储库)。
Launchpad 是基于合并请求构建的(类似于拉取请求)。
在 Phabricator 和 Phorge 中,几乎所有对象的权限都可以调整。此功能非常独特。例如,每个 Phabricator 任务都可以配置为自定义可见性和编辑权限。这非常灵活。很容易说某件事“只能由管理员或此安全组中的用户编辑,但只有在满月的时候”。此外,这个灵活的可见性系统可以快速创建只对您可见的任务(或其他东西):例如,您可以秘密地组织您的工作,创建即使对您的老板或管理员也不可见的东西。例如,此功能经常用于创建只有您自己可见的秘密口令等。
在 GitHub、GitLab 和 Launchpad 中,这受到限制,所以可能更简单。
在 Mantis 错误跟踪器中,只有任务可以隐藏。它们只有两种状态:公开和私有(私有是用户固定的列表)。
Phabricator 和 Phorge 某种程度上对从 Web 界面永久删除对象感到担忧。通常,对象可以归档、标记为已删除,但不能永久删除。您可能需要访问服务器命令行才能执行重要操作,例如存储库删除等。有关此选择的理由,请在此处解释:在 Phabricator 中永久删除数据。这样,普通管理员就无法从 Web 界面犯任何大错误。
在 GitHub 和 GitLab 中,如果您是管理员,则可以轻松地完全销毁存储库。
Phabricator 和 Phorge 拥有一个非常灵活的依赖系统来声明:这个任务的父任务是什么?子任务是什么?注意:两种情况都是复数。因此,您可以以可视化的方式组织涉及多个大型部门和项目的大量复杂工作。维基媒体基金会的示例:https://phabricator.wikimedia.org/T229015
在任何其他平台中,此功能都非常基本。通常,您只能有一个父任务和多个子任务。
在 Mantis 错误跟踪器中,该系统相当平坦,通常人们不会分配父任务/子任务。这被视为一个额外的属性,不会以树状结构显示。
在 Phabricator 和 Phorge 中,您可以为任务分配“点数”。因此,一项任务比另一项任务复杂得多,需要更多时间等等。然后,您可以为看板列分配“点数限制”。然后,每一列都会显示您的进度情况,以及您是否正在走向倦怠。如果您关闭了一项任务,进度条将根据其点数系数前进,这在视觉上很有用。此外,对于每个项目,都会自动渲染一个显示您“倦怠图表”的图表,以便您可以看到一个项目正在接收多少个开放的任务,以及随着时间的推移关闭了多少个任务,以查看您的团队是否高效或是否完全倦怠等等。
请添加其他比较。
Phabricator 和 GitLab 之间也存在着有趣且较为中立的比较,同时还涉及 Bugzilla、GOGS、gitea 和 Pagure。
您可以在 GNOME wiki 上了解更多信息。