32

使用纯函数式语言比使用不纯的命令式有很多好处,但是低级系统语言通常可以让您获得更高的性能,尤其是当它们是命令式时,因为它允许您指定 cpu 应该如何计算的确切步骤结果。

如果曾经有一个工具列表绝对需要高性能,那么我会将 VCS 放在该列表的顶部,而 git 很好地实现了这一点。然而,与许多其他类型的版本控制系统相比,性能并不是 git 的唯一优势。

git 团队很好地处理了不安全的 c 代码,我从不担心我的类型系统(或它所用语言的任何其他功能),所以为什么有很多 haskell 开发人员必须使用 darcs他们什么时候只使用成品?

4

2 回答 2

73

Darcs 管理补丁集合而不是按时间顺序排列的历史。有关这方面的更多信息,请参阅darcs wiki 页面,记录与 Git 的差异. 这种差异体现在 darcs 以交互方式无序拉取补丁的能力。例如,您可以从“开发”到“测试”拉取所有具有与票号匹配的提交标题的补丁。Darcs 会自动确保这些补丁所依赖的任何其他页面也被拉出。使用此关键功能,您可能需要更少的分支和存储库来维护。虽然在 Git 中,在工作之前创建一个分支非常有帮助,但在 Darcs 中,这通常不是问题,只要您在相关提交中提及相同的票号即可。我在一个 100,000k LoC 项目中广泛使用了基于此的工作流程。除了技术差异之外,darcs 还非常用户友好。命令较少,大多数默认情况下是交互式的,提示您该做什么。

由于 darcs 的优势和易用性,我更喜欢它而不是 git,我也经常将它用于开源项目。Darcs 非常易于使用,即使您必须学习 git 才能为某些项目做出贡献,您仍然可以在您可以选择的其他项目中使用 darcs 并从中受益。

于 2012-01-12T15:31:23.253 回答
23

我认为总的来说,某些用户社区会倾向于一种或另一种技术。如果一项技术使用社区的语言,则尤其如此。也有可能(尽管我不知道)Darcs 的作者和/或初始用户是相当知名的 Haskell 开发人员,因此具有更大的影响力。

还有其他示例,例如 Mercurial 似乎在 python 社区中更受欢迎,而其他语言似乎使用 Git。

一旦您使用了特定的软件,即使有优势,也可能不值得切换到另一个软件。

老实说,尽管使用你最喜欢的任何东西。在这一点上,几乎需要安装 hg、git 和 svn 并了解使用它们的基础知识。如果您使用的是 Haskell,您可能需要将 Darcs 添加到此列表中。

于 2010-03-23T15:56:42.277 回答