Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial:如果等待接收,避免提交,或者如何防止多个头部?_Mercurial - Fatal编程技术网

Mercurial:如果等待接收,避免提交,或者如何防止多个头部?

Mercurial:如果等待接收,避免提交,或者如何防止多个头部?,mercurial,Mercurial,我正在使用mercurial,我们发现多个头部存在问题 我不是在问如何解决这个问题。我已经知道了 问题是,我如何配置mercurial(如果可能的话)以防止在没有拉入和合并的情况下提交 如何防止用户创建多个头部 谢谢 编辑: 让我直说清楚,因为我开始担心我不理解mercurial的方式 我创建了一个respository,我们称之为Projects。 我将数据推到上面,创建修订版1 然后我修改数据,创建修订版2 我的同事下载了回购协议,现在有了本地版本2 我修改我的数据(Rev2)并提交 我的同

我正在使用mercurial,我们发现多个头部存在问题

我不是在问如何解决这个问题。我已经知道了

问题是,我如何配置mercurial(如果可能的话)以防止在没有拉入和合并的情况下提交

如何防止用户创建多个头部

谢谢

编辑:


让我直说清楚,因为我开始担心我不理解mercurial的方式

我创建了一个respository,我们称之为Projects。 我将数据推到上面,创建修订版1 然后我修改数据,创建修订版2

我的同事下载了回购协议,现在有了本地版本2 我修改我的数据(Rev2)并提交 我的同事修改了他的本地版本(rev2)

现在,我的同事不能推动他的工作,因为这会产生一个新的头。 但是,如果他首先提取代码,他会得到我的rev2'版本,并可以继续推一个修改的rev3。 问题是,我不希望他能创造这个新的头,但是,在他提交之前,强迫他提取我的来源,所以只有一个头

正如Mathiasdm所说,我开始认为这是不可能的,因为我们当地的rev2不同?
我使用mercurial时出错了?

这将满足您在Linux/UNIX上的需求:

[hooks]
precommit = ! hg incoming 
这是因为as
hg help incoming
显示传入的返回值0(如果有传入的更改)。当
manhgrc
显示如果
precommit
hook返回0,则提交可以继续。加上一个否定词,鲍勃就是你叔叔


当然,所有这些都不能保证不会有多个头,但它可以确保在不检查其他人是否已经推过一个头的情况下,您不能提交。祝你好运,让你的朋友安装钩子。

你为什么要这么做?如果尚未提交,则无法合并。为什么要避免提交、拉取和合并?拉动后,您将暂时拥有多个头部。这是完全正常的。如果你推多个磁头,问题就来了,但这很容易通过先合并来解决。你为什么要阻止犯罪?我想问的是,是否有一种方法可以阻止我的同事在不先动手的情况下犯罪。或者我在这里搞砸了什么?不必先拉合并就提交是Mercurial的固有特征。听起来你想转向一个更类似于Subversion的模式,还是我误解了?我真的不明白你为什么要这么做。在Mercurial中,没有办法强制执行这样的工作流,除非您能找到一种方法让所有用户安装强制执行的自定义挂钩(我不建议这样做!)。让我直截了当地说清楚,因为我开始担心我不理解Mercurial的方式。我创建了一个回应,让我们称之为项目。我对这个问题发表评论是为了更好地澄清,但我开始认为这是不可能的?