>>>>>> yours"类型标记的带注释的差异文件-6ren"> >>>>>> yours"类型标记的带注释的差异文件-我正在尝试使用具有如下标记的 Linux diff 命令创建一个 diff 文件(取自 diff3 手册页): >>>>>> yours 这种格式对我来说非常直观,它-6ren">
gpt4 book ai didi

diff - 带有 "<<<<<<< mine"和 ">>>>>>> yours"类型标记的带注释的差异文件

转载 作者:行者123 更新时间:2023-12-04 19:09:57 38 4
gpt4 key购买 nike

我正在尝试使用具有如下标记的 Linux diff 命令创建一个 diff 文件(取自 diff3 手册页):

          <<<<<<< mine
lines from mine
=======
lines from yours
>>>>>>> yours

这种格式对我来说非常直观,它允许我轻松修复 vim 中的合并冲突,当我尝试使用 diff3 合并三个文件(我的、你的和原始文件)时它工作得很好,但我想要来自普通 diff 的相同格式。我希望这会很简单,但我一直无法得到它。我已经尝试了大多数主要选项(-e、--ed 等),甚至尝试创建一个 --changed-group-format 但没有成功。

希望这是我刚刚忽略的简单事情。

更新:

带有添加行、删除行和冲突行的两个文件差异示例:

enter image description here

最佳答案

您可以使用差异选项。下面的shell脚本

diff \
--unchanged-group-format='%=' \
--old-group-format='' \
--new-group-format='%>' \
--changed-group-format='<<<<<<< mine
%<=======
%>>>>>>>> yours
' \
orig.txt new.txt

输出
This has some stuff
in that gets
modified in
a later version
<<<<<<< mine
and there is a conflict
=======
and there is a conflict (like here)
>>>>>>> yours
about which version
should be used.
newline

对于屏幕截图中的文件。您可以在文档中查看更多差异的格式选项,例如 here .

一个类轮(从命令行工作,至少在 linux 上):
diff --unchanged-group-format="%=" --old-group-format="" --new-group-format="%>" --changed-group-format="<<<<<<< mine%c'\\12'%<=======%c'\\12'%>>>>>>>> yours%c'\\12'" orig.txt new.txt

关于diff - 带有 "<<<<<<< mine"和 ">>>>>>> yours"类型标记的带注释的差异文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043063/

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