答案1
通常情况下,答案是“视情况而定”。这取决于你希望做出什么样的贡献。Ubuntu 是一个由许多不同软件包组成的庞大项目。
有些,如 Unity 或 Software Center,是作为 Ubuntu 项目的一部分开发的。“上游”代码位于 bazaar 存储库中,为这些项目做出贡献的最佳方式是在 Launchpad 上提出合并建议。它们的开发模型与此过程紧密相关,每次提交进入主干之前都会进行持续集成测试。
对于大多数其他软件包,Ubuntu 只是“下游”。这些软件要么是 Ubuntu 开发人员开发的软件包,要么来自 Debian。这些数千个软件包的上游开发当然是在从 CVS 到 git 的许多不同 VCS 中完成的。例如,GNOME 项目都存在于 git 中。为了使用 DVCS 以统一的方式处理这些软件包,Ubuntu 需要做出选择。出于多种原因,选择 Bazaar 对我们来说是有意义的。Canonical 是 Ubuntu 和 Bazaar 的企业赞助商这一事实显然是一个主要因素。Ubuntu 从中受益匪浅,因为 Bazaar 上游资源通常用于专门处理与 Ubuntu 的集成以及 Ubuntu 开发人员确定的痛点。Bazaar 和 Launchpad 已经紧密联系在一起。由于 Ubuntu 已经使用 Launchpad 进行错误跟踪,因此将开发集中在那里是有意义的。
因此,如果您打算为 Ubuntu 的“上游”项目之一做出贡献,Bazaar 无疑是您的最佳选择。
如果您正在开发自己的软件并希望将其包含在 Ubuntu 中,那么您可以使用任何您想要的 VCS。
如果您想为 Ubuntu 中的软件打包和软件包修复做出贡献,这些软件包都会被导入到 Bazaar 存储库中,但如果您不习惯,则无需使用它们。这样做是为了让那些想要它的人拥有 DVCS 的强大功能,但您仍然可以通过所谓的“传统包装方法”找不到更好的词来形容。在 Bazaar 被用于 Ubuntu 开发之前,这些是为 Ubuntu 做贡献的典型方法。
至于 Bazaar 在哪些方面优于 Git,这似乎是一个不同的问题。