我需要在 Mercurial 存储库(我们称其为“foo”)上与一些通常是版本控制新手的人合作,尤其是 Mercurial。
我正在尝试提出一个工作流程,使我们能够使用 Mercurial,而无需在他们的一端(混乱)或我的一端(清理)付出很多额外的努力。
我担心的是,作为新手,我需要期望他们犯错误,并且我需要允许他们以可控的方式这样做,否则他们根本不会使用该工具,因为他们太害怕了。但我不希望一个糟糕的改变不必要地污染存储库。
我不希望它们能够正确合并或使用mq
扩展。这不是低估它们的问题,而是考虑到过去使用 SVN 的经验和我自己使用 Hg 的经验,这是一个现实的评估。
以下哪种方法最有意义?或者如果有更好的方法,它是什么?
我们有一个存储库
foo-submit
,所有人都可以读/写,还有一个存储库foo-trunk
,所有人都可以读,但管理员可以写。用户从中拉取foo-trunk
更改并将更改推送到foo-submit
. 清理:如果我发现一个好的变化,我就让它通过;如果我发现一个不好的变化,我会通过与以前的版本合并来“绕过”它。我们有一个
foo-trunk
所有人可读、管理员可写的存储库。每个用户负责维护他们自己的克隆,该克隆可供团队其他成员读取。当有人想要推送更改时,他们让我知道,然后我从他们的存储库中提取它,并根据需要进行适当的清理(与 #1 相同)我们有一个存储库
foo-dev
,所有人都可以读/写,还有一个存储库foo-trunk
,所有人都可以读,但管理员可以写。用户拉/推到 foo-dev,如果他们需要进行广泛的开发,他们可以在命名的分支中工作。我负责执行合并和清理。存储库foo-trunk
仅用于拥有一个“干净”副本,该副本具有尖端始终处于良好状态的分支。