Mercurial - 使用subrepos推动时的竞争条件

时间:2013-06-13 06:44:37

标签: mercurial push race-condition subrepos mercurial-subrepos

具有相当基本的subrepo结构:

  


  父/ subrepo1
  parent / subrepo2

当多个用户同时推送更改时,往往会出现竞争条件。简单的例子:

用户1& 2开始推动。
用户1跳过parent/subrepo1,没有更改 用户2会随着更改而推送到parent/subrepo1 用户1会随着更改而推送到parent/subrepo2 用户2尝试推送到parent/subrepo2,但不能,因为它会创建多个头 用户1完成推送parent

结果是用户1成功地推送了所有内容,但是用户2部分推送然后失败。这使得parent/subrepo1上的parent没有相应的提交,这将导致下一个人推送parent/subrepo1的问题,除非用户2发现他们的错误,拉parent 1}},合并,提交,然后尝试推送(但不能保证其他用户不会再次尝试同时推送!)。

我的问题:Mercurial中有没有办法强制用户在Mercurial存储库上进行推送操作时使用其他子库(有效实现互斥) OR 有没有办法当用户无法推送时,撤消对目标更改的子目录的失败推送。

0 个答案:

没有答案