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 使用Mercurial以三向合并方式保存的文件是什么?_Version Control_Mercurial_Merge - Fatal编程技术网

Version control 使用Mercurial以三向合并方式保存的文件是什么?

Version control 使用Mercurial以三向合并方式保存的文件是什么?,version-control,mercurial,merge,Version Control,Mercurial,Merge,我在Mercurial中打开了三向合并窗口: local base other 我在A分支:hg更新A 我想与分支B合并:hg merge B 我想知道什么是local、base和other 我读了这篇文章,但没能理解 现在我想知道我需要保存local、base、other中的哪个文件?我需要使所有文件都相同吗?这会改变其他分支中的文件,还是只保存在“我的当前分支A”中,而不会触动其他分支?在您的示例中: local是分支A上的最后一个变更集 other是分支B上的最后一个变更集 bas

我在Mercurial中打开了三向合并窗口:

local
base
other
  • 我在A分支:
    hg更新A
  • 我想与分支B合并:
    hg merge B
我想知道什么是
local
base
other

我读了这篇文章,但没能理解

现在我想知道我需要保存
local
base
other
中的哪个文件?我需要使所有文件都相同吗?这会改变其他分支中的文件,还是只保存在“我的当前分支A”中,而不会触动其他分支?

在您的示例中:

  • local
    是分支A上的最后一个变更集
  • other
    是分支B上的最后一个变更集
  • base
    是最新的变更集,它是两个分支的祖先
如果您只执行上面列出的命令(
hg update A
hg merge B
),那么您将无法选择要获取哪些文件,因为Mercurial将在可能的地方为您做出选择

您需要做出决定的唯一时间是,如果文件在两个分支中都发生了更改,Mercurial无法自动解析。在这种情况下,您将看到您选择的用于解决冲突的合并程序。您必须查看每个分支中所做的更改,并手动决定如何组合这些更改。如果其他开发人员进行了其中一项更改,那么您可能需要请求他们帮助进行合并


如果您执行
hg更新A
hg合并B
,则唯一受影响的分支是A。

例如,我在
分支B
中进行了更改,然后在
分支A
中进行了一些更改。现在我得到了包含三个文件的
meld
工具。现在我想知道,从本地,其他,基地,哪个文件将被保存为分支A. BeCead我不想触摸分支B’文件,因为这是错误修复分支典型的中间。如果你不知道如何使用meld,不要使用它。我总是使用ui.merge=internal:merge with Mercurial。对我来说,这更可取。这里仍然缺少的是将合并版本放入并保存的三个打开文件名中的哪一个。