具有相当基本的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 有没有办法当用户无法推送时,撤消对目标更改的子目录的失败推送。