我正在使用mercurial,我们发现了多个头的问题。
我不会问如何解决它。我已经知道了。
问题是,如何配置mercurial(如果可能)以防止提交而不进行拉动和合并?
如何阻止用户创建多个头?
感谢。
编辑:
让我直截了当地说清楚,因为我开始担心我不理解mercurial的方式。
我创建了一个存储库,我们称之为Projects。 我将数据推送到它上面,创建了修订版1 然后我修改数据,创建修订版2
我的同事下载了回购,现在有一个本地rev2 我修改我的数据(Rev2)并提交 我的同事修改了他的本地(rev2)。
现在,我的同事无法推动他的工作,因为它创造了一个新的头脑。 但是,如果他第一次拉动代码他得到我的rev2'并且可以继续推进修改后的rev3。 问题是,我不希望他能够创造这个新头,但是,在他提交之前强迫他拉出我的来源,所以只有一个头。
正如Mathiasdm所说,我开始认为这是不可能的,因为我们的本地版本不同? 我使用mercurial错误?
答案 0 :(得分:2)
这将在Linux / UNIX上执行您想要的操作:
[hooks]
precommit = ! hg incoming
这是有效的,因为如果有传入的更改,hg help incoming
会显示传入的返回0。并且当man hgrc
显示precommit
挂钩返回0时,提交可以继续。添加一个否定,鲍勃是你的叔叔。
当然,这些都不能保证不会有多个头,但它确保你不能在没有检查其他人是否已推出一个头的情况下提交。祝你的朋友安装钩子好运。