Mercurial:如果等待接收,避免提交,或者如何防止多个头部?
我正在使用mercurial,我们发现多个头部存在问题 我不是在问如何解决这个问题。我已经知道了 问题是,我如何配置mercurial(如果可能的话)以防止在没有拉入和合并的情况下提交 如何防止用户创建多个头部 谢谢 编辑:Mercurial:如果等待接收,避免提交,或者如何防止多个头部?,mercurial,Mercurial,我正在使用mercurial,我们发现多个头部存在问题 我不是在问如何解决这个问题。我已经知道了 问题是,我如何配置mercurial(如果可能的话)以防止在没有拉入和合并的情况下提交 如何防止用户创建多个头部 谢谢 编辑: 让我直说清楚,因为我开始担心我不理解mercurial的方式 我创建了一个respository,我们称之为Projects。 我将数据推到上面,创建修订版1 然后我修改数据,创建修订版2 我的同事下载了回购协议,现在有了本地版本2 我修改我的数据(Rev2)并提交 我的同
让我直说清楚,因为我开始担心我不理解mercurial的方式 我创建了一个respository,我们称之为Projects。 我将数据推到上面,创建修订版1 然后我修改数据,创建修订版2 我的同事下载了回购协议,现在有了本地版本2 我修改我的数据(Rev2)并提交 我的同事修改了他的本地版本(rev2) 现在,我的同事不能推动他的工作,因为这会产生一个新的头。 但是,如果他首先提取代码,他会得到我的rev2'版本,并可以继续推一个修改的rev3。 问题是,我不希望他能创造这个新的头,但是,在他提交之前,强迫他提取我的来源,所以只有一个头 正如Mathiasdm所说,我开始认为这是不可能的,因为我们当地的rev2不同?
我使用mercurial时出错了?这将满足您在Linux/UNIX上的需求:
[hooks]
precommit = ! hg incoming
这是因为ashg help incoming
显示传入的返回值0(如果有传入的更改)。当manhgrc
显示如果precommit
hook返回0,则提交可以继续。加上一个否定词,鲍勃就是你叔叔
当然,所有这些都不能保证不会有多个头,但它可以确保在不检查其他人是否已经推过一个头的情况下,您不能提交。祝你好运,让你的朋友安装钩子。你为什么要这么做?如果尚未提交,则无法合并。为什么要避免提交、拉取和合并?拉动后,您将暂时拥有多个头部。这是完全正常的。如果你推多个磁头,问题就来了,但这很容易通过先合并来解决。你为什么要阻止犯罪?我想问的是,是否有一种方法可以阻止我的同事在不先动手的情况下犯罪。或者我在这里搞砸了什么?不必先拉合并就提交是Mercurial的固有特征。听起来你想转向一个更类似于Subversion的模式,还是我误解了?我真的不明白你为什么要这么做。在Mercurial中,没有办法强制执行这样的工作流,除非您能找到一种方法让所有用户安装强制执行的自定义挂钩(我不建议这样做!)。让我直截了当地说清楚,因为我开始担心我不理解Mercurial的方式。我创建了一个回应,让我们称之为项目。我对这个问题发表评论是为了更好地澄清,但我开始认为这是不可能的?