Diff 统一差异:第二个@大块头后的文本

Diff 统一差异:第二个@大块头后的文本,diff,Diff,我在网上找不到统一diff格式的规范。人们通常会在一个大块头的第二个@之后看到不同文件中的文本,如下所示: @@ -209,4 +196,4 @@ cleanup: _TEMPLATE(T, vec) (X); } -#endif \ No newline at end of file +#endif 第二个@之后的文本是否重要?这也让我感到困惑,因为它破坏了我使用的开源补丁解析器。这似乎连工具制造商都不太明白 显然,@后面的文本是由--show-c-function标记生成的,以

我在网上找不到统一diff格式的规范。人们通常会在一个大块头的第二个
@
之后看到不同文件中的文本,如下所示:

@@ -209,4 +196,4 @@ cleanup:
    _TEMPLATE(T, vec) (X);
 }

-#endif
\ No newline at end of file
+#endif

第二个
@
之后的文本是否重要?

这也让我感到困惑,因为它破坏了我使用的开源补丁解析器。这似乎连工具制造商都不太明白

显然,
@
后面的文本是由
--show-c-function
标记生成的,以diff形式记录。在您的例子中,标题有点用词不当,因为您的文本不是函数定义,而是(可能)一个标签,当diff在编辑的行上方查找未缩进的most标识符时,它会被捕获

您可以在此处看到此功能工作原理的示例:

正常

diff --unified=3 <(curl -s https://raw.githubusercontent.com/gcc-mirror/gcc/97574c57cf26ace9b8609575bbab66465924fef7/gcc/config/sparc/sparc.c) <(curl -s https://raw.githubusercontent.com/gcc-mirror/gcc/17fc6eeba9352b97ba16d64fd1de9a5bdc081062/gcc/config/sparc/sparc.c) | sed -n '3p'
输出:
@-648,7+648,6@@static reg\u class\u t sparc\u secondary\u reloa

据我所知,
@
之后的文本主要是供人类使用的,如果你愿意,可以放心地忽略它

diff --show-c-function --unified=3 <(curl -s https://raw.githubusercontent.com/gcc-mirror/gcc/97574c57cf26ace9b8609575bbab66465924fef7/gcc/config/sparc/sparc.c) <(curl -s https://raw.githubusercontent.com/gcc-mirror/gcc/17fc6eeba9352b97ba16d64fd1de9a5bdc081062/gcc/config/sparc/sparc.c) | sed -n '3p'