gpt4 book ai didi

mercurial - 在 mercurial 中进行 merge 时忽略空格

转载 作者:行者123 更新时间:2023-12-04 07:10:38 26 4
gpt4 key购买 nike

我们在 Mercurial 中合并时遇到了一个问题,其中空白更改导致合并冲突,这掩盖了我们可能遇到的任何“真实”冲突,并使合并成为一场噩梦。我们最近遵循了一种格式样式,该样式更改了某些分支中文件的缩进,并且从那时起合并几乎变得不可能。

例如,尝试:

hg init testrepo
cd testrepo/

echo "This is text." > newfile.txt
hg add newfile.txt
hg commit -m "Created a file."
hg branch newbranch
echo "This is some more text." > newfile.txt
hg commit -m "Changed text in the file."
hg update default
echo " This is text." > newfile.txt
hg commit -m "Added indentation whitespace."

这会导致两个分支,一个有空格变化,另一个有文本变化:
@  2     "   This is text".
|
|
| o 1 "This is some more text."
|/
|
o 0 "This is text."

尝试 hg merge 时对此,我遇到了合并冲突。如果我们在每一行都有冲突,那么理清“真正的”冲突就变得困难和耗时。我更喜欢合并过程认为“好吧,变更集 2 第 1 行与父级仅在空白处不同,因此将其视为未更改。选择变更集 1 第 1 行作为合并结果。”

最佳答案

是否忽略空格是您的合并工具做出的选择。您可以配置各种合并工具以与 mercurial 一起使用,如下所示:MergeToolConfiguration

Mercurial 的内部预合并不会/不能忽略空格,但是如果您的外部合并工具这样做并且它发现只有空格更改,它将立即退出,如果它发现其他空格更改,它可以隐藏空白更改时加载。

例如,与流行的kdiff3 merge tool您将启用“空白 2/3 文件合并”设置并告诉它是选择左侧还是右侧。

Tl;Dr:在你的合并工具中打开它,而不是在 mercurial 中。

关于mercurial - 在 mercurial 中进行 merge 时忽略空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5583693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com