简短的回答是化石......或者任何让你感觉良好的东西:-)。更长的答案...
我在商业环境中使用过 Redmine/Git 和 Fossil 来管理内部项目。我还专门使用 Fossil 来管理我所教大学的学生项目。Redmine,像许多这样的产品一样是可以的,但它实际上只是将其他不相交的项目粘在一起的粘合剂。管理它并不难,但您必须将其作为您正在进行的过程的一部分进行管理。另一方面,Fossil 一旦开始运行,几乎不需要管理(在服务器级别)。更清楚地说,当我管理 Redmine 时,我们有一个定期更新的脚本、配置文件和其他资产的存储库,用于管理我们的 Redmine 安装(当然,所有这些都在 Redmine 控制之下)。当我开始使用 Fossil 时,我的经验指导我创建了一个类似的项目。不同之处在于,我没有在事情发生变化时定期更新这个项目(就像我在 Redmine 管理 repo 中所做的那样),我在过去两年中只对等效的 Fossil 项目进行了 5 次提交,即使我使用更新了 Fossil 可执行文件本身更大的规律性。因为 Fossil 是一个单一来源/可执行文件,集成了您提到的所有功能(甚至不是“集成”,而是“架构上的亲密”),所以我的管理开销实际上为零。
此外,我只是喜欢在命令行中使用化石,这是我从未在 Git、Mercurial 或 Subversion 上做过的方式(所有这些都是很好的工具)。从我作为一名工程师的角度来看,Fossil 的重点似乎是你将在大约 99% 的时间里做的事情,而许多其他事情(即合理的事情)都是可以毫无困难地完成的。这是我非常欣赏的一个焦点。
我应该指出,我不认为 Fossil 接近完美,但它是一个很棒的工具,并且改变了我对源代码管理的看法,这对我来说很重要。