为什么Mercurial在提交之前没有检查最新版本?

时间:2012-02-04 08:29:03

标签: svn mercurial dvcs

在SVN中,如果本地修订版与主存储库不是最新的,则无法提交。 Mercurial不会检查这个并允许您提交。然后你必须做一个合并。

如果有很多程序员在工作,那么这可能会导致一个大问题。这有什么办法吗?

1 个答案:

答案 0 :(得分:6)

Mercurial和SVN有两种截然不同的工作方式。

SVN是集中式的,所有其他人都可以立即访问您提交的所有内容。这就是为什么你必须始终承诺所有其他变化。因此,您可以确定您所做的工作仍然适用于其他人所做的修改。

使用Mercurial,提交是您工作目录的本地提交。只有push会分发给其他人。这就是为什么没有检查每个提交的原因。 (通过这种方式,您也可以脱机工作,即无需连接到存储库)。

只有当您尝试push您的更改时,Mercurial才会检查分支机构是否有新的提交,而您正在使用它。如果是这样,您可以强制推送(这将创建一个新头)或合并其他修改,从而承认其他人的工作。

每个DVCS(D用于分发)我知道处理提交/推送的方式相同,这是它们的众多优点之一。只要合并完成,你就不会有这样的问题。

如果你真的想在每次提交时检查新的变更集,我认为可以用一些钩子来做,但我真的看不出原因。也许有人会提出这样的事情。