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
Version control 在不实际拉动的情况下检测父回购和fork之间的冲突_Version Control_Mercurial_Dvcs - Fatal编程技术网

Version control 在不实际拉动的情况下检测父回购和fork之间的冲突

Version control 在不实际拉动的情况下检测父回购和fork之间的冲突,version-control,mercurial,dvcs,Version Control,Mercurial,Dvcs,我想解决以下问题: 我有一个存储库(称为a)和一个克隆库(称为B)。我在B中做了一些更改,我想让A的所有者将其删除。我想实现一个函数,该函数可以计算B中的更改是否可以拉到a而不会引起任何冲突。我想以这样一种方式来实现它,即不会损坏a中的信息(因此任何克隆a的人都会看到与此冲突检测之前完全相同的信息) 请注意,我想用更有效的方法来解决这个问题。我看到bitbucket对拉取请求执行此检查的速度非常快。你知道吗 首先,拉动本身不会产生任何冲突。它只是将变更集添加到存储库历史记录中,还可能添加新的分支

我想解决以下问题: 我有一个存储库(称为a)和一个克隆库(称为B)。我在B中做了一些更改,我想让A的所有者将其删除。我想实现一个函数,该函数可以计算B中的更改是否可以拉到a而不会引起任何冲突。我想以这样一种方式来实现它,即不会损坏a中的信息(因此任何克隆a的人都会看到与此冲突检测之前完全相同的信息)

请注意,我想用更有效的方法来解决这个问题。我看到bitbucket对拉取请求执行此检查的速度非常快。你知道吗

首先,拉动本身不会产生任何冲突。它只是将变更集添加到存储库历史记录中,还可能添加新的分支/头。合并这些头时可能会发生冲突。所以,当A从B中拉出时,A中没有任何东西被破坏

但是,如果您希望A的所有者包含您的更改,那么您实际上需要做的是将A最近的更改拉到B中,如果需要,将A的新更改合并到您的新更改中。然后向你现在合并的B请求拉取,a可以拉取,而无需添加新的头,因此可能无需处理冲突


如果您不想遵循常见的工作流,但确实想按照您的问题中所述进行检查,只需创建a的新克隆,比如说C,然后尝试从B拉入并合并到C。但最终您还是会进入上述步骤。

您不能创建a的另一个克隆并在那里进行合并吗?这样你就知道合并是如何进行的,而且不会把事情搞砸。

如果合并导致冲突,你可以用“hg update-C-r”撤销它。谢谢,如果有冲突,我会建议你这样做。但在此之前,我必须检测是否存在冲突。拉入的问题是,在将一些变更集拉入repo后,这些变更集也将在repo的克隆中可见。@akostajti,我不太理解拉入问题:您不想从a拉入B,因为现在B的克隆可以看到拉入的变更集?我有巨大的存储库,所以临时克隆是一项巨大的开销。