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中完全手动控制合并过程 我希望能够选择文件合并的方向,即使是没有冲突的文件。 这可能吗?在工作目录的父版本和另一个版本(默认情况下是存储库中的另一个头)之间始终执行合并 如果要在其他“方向”上合并,可以通过签出特定修订来更改工作目录中的分支: hg update -r [rev] 要查看存储库中有哪些磁头,请运行以下命令: hg heads 或者,如果您正在使用fetch,则可以使用--switch parent选项以另一个方向合并: hg fetch --sw

有没有办法在Mercurial中完全手动控制合并过程

我希望能够选择文件合并的方向,即使是没有冲突的文件。
这可能吗?

在工作目录的父版本和另一个版本(默认情况下是存储库中的另一个头)之间始终执行合并

如果要在其他“方向”上合并,可以通过签出特定修订来更改工作目录中的分支:

hg update -r [rev]
要查看存储库中有哪些磁头,请运行以下命令:

hg heads
或者,如果您正在使用
fetch
,则可以使用
--switch parent
选项以另一个方向合并:

hg fetch --switch-parent
您不能逐个文件更改合并方向,因为Mercurial使用的变更集会影响整个存储库,而不是跟踪对单个文件(如CVS)的更改。

在合并配置中关闭“预合并”。然后一切都算作冲突,您可以为每个文件更改选择“左”或“右”

[merge-tools]
mymergetool.premerge = False

从。

按以下方式编辑配置文件:

[ui]
merge = kdiff3

[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output

默认情况下,它将
--auto
参数放在kdiff3上,以便kdiff3自动合并。

对于kdiff3,必须添加选项
--qall
(请参阅)。不使用此键将自动合并一些冲突(如“合并”菜单中的“自动解决简单冲突”)。因此,更合适的命令行是:

[ui]
merge = kdiff3

[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall

我看他接受了你的回答,但我不认为这是他问的。您告诉他如何为所有非冲突选择“左”或“右”,但如果他想要混合和匹配,他需要在启动合并工具之前关闭内部“预合并”。+1因为我为此苦苦挣扎了半个小时,您是第一个建议删除
--auto
参数的人。我要花很长时间才能找到它(因为我已经错过了所有其他需要手动合并的时间)。现在,你可以尝试
hg merge--tool internal:prompt
,它可能会帮助别人,因为上面和下面的代码片段都没有帮助我。我添加了
[ui]->merge=internal:merge
,在合并失败后,它完全禁用了解析工具。事实上,在我更新了Mercurial版本后,讨厌的工具开始出现了。