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

Kha*_*han 2 svn mercurial dvcs

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

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

krt*_*tek 6

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

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

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

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

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

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