在git(和diff)的上下文中,“a”是什么;“帅哥”;

在git(和diff)的上下文中,“a”是什么;“帅哥”;,git,diff,Git,Diff,在阅读一些git文档时,我正在寻找“hunk”的定义 我知道这意味着描述两个文件之间的差异,并且它有一个定义良好的格式,但我想不起一个简洁的定义 我试着用谷歌搜索,但是有很多有点虚假的点击 最终我发现: 当比较两个文件时,diff会发现两个文件共有的行序列,其中散布着称为hunk的不同行组 在这里: 这正是我想要的那种简洁的定义。希望这对其他人有帮助 关于您的信息,您也可以阅读以下简单解释: 术语“帅哥”实际上并不特定于Git,而是来源于。更简洁地说: 每个大块头显示一个文件不同的区域 但Gi

在阅读一些git文档时,我正在寻找“hunk”的定义

我知道这意味着描述两个文件之间的差异,并且它有一个定义良好的格式,但我想不起一个简洁的定义


我试着用谷歌搜索,但是有很多有点虚假的点击

最终我发现:

当比较两个文件时,diff会发现两个文件共有的行序列,其中散布着称为hunk的不同行组

在这里:


这正是我想要的那种简洁的定义。希望这对其他人有帮助

关于您的信息,您也可以阅读以下简单解释:

术语“帅哥”实际上并不特定于Git,而是来源于。更简洁地说:

每个大块头显示一个文件不同的区域

但Git面临的挑战是为一个大块头确定正确的边界

答案的其余部分有助于说明Git中的帅哥是什么样子:

经过各种试探(如Git2.12中的),Git维护人员选择了缩进式,缩进式是在年引入的

可以向上或向下滑动diff中添加/删除的某些行组, 因为组边缘的线条不是唯一的。
为这些群体选择好的班次不是正确的问题,但肯定会对美学产生重大影响
例如,考虑下面两个差异。 第一个是标准Git发出的信息:

以下差异是等效的,但显然更适合于 美学观点:

这个补丁教Git为这种“差异滑块”选择更好的位置 使用试探法,获取附近空行的位置,并 考虑到附近行的缩进


对于Git 2.14(2017年第3季度),这种缩进启发式将是默认的

参见(2017年5月8日)作者。
参见(2017年5月8日)作者。
见Marc Branchaud(2017年5月8日)。
(于2017年6月5日被合并)

差异:默认情况下启用缩进启发式 该功能包含在v2.11(2016-11-29发布)中,我们没有 非正面反馈。恰恰相反,我们得到的所有反馈都是正面的

默认情况下打开它。不喜欢该功能的用户可以将其关闭 通过设置
差异


在Git 2.24(2019年第4季度)中,决定拆分位置的“缩进启发式” diff hunks的文档已经更正

参见作者(2019年8月15日)
(于2019年9月9日合并)

差异:“差异启发式”不再是实验性的 缩进启发式最初是实验性的,但现在是我们的 默认差异启发式自(
diff
):启用缩进启发式 默认情况下,2017-05-08,Git v2.14.0-rc0)。
遗憾的是,提交并没有更新文档,“
diff.indent
”配置变量的描述仍然暗示它是实验性的,而不是默认的

更新“
diff.indenthetic
”的描述,以明确 这是默认的差异启发式

相关“
--indent heuristic
”选项的描述已被删除 已更新

现在改为:

diff.indenthetic
: 将此选项设置为
false
,以禁用默认的试探法,该试探法可移动差异块边界,以使修补程序更易于阅读


使用Git2.25(2020年第1季度),您甚至不必再指定
--indent heuristic
(因为它在很多时候是默认的)

参见作者(2019年10月28日)
(于2019年12月1日合并)

:从用法字符串中删除“--缩进启发式” 签字人:SZEDER Gábor

缩进启发式是我们默认的差异启发式,因为(“
diff
:默认启用缩进启发式”,2017-05-08,Git v2.14.0-rc0——在中列出),但“
Git gull
”的用法字符串仍然将其称为“实验启发式”

我们可以简单地更新与该选项相关联的简短帮助,但根据选项声明上方的注释,它“仅包含在此处以包含在”
-h
“输出”中”

这是有道理的,虽然该功能仍然是实验性的,我们想给它更多的曝光,但现在它是不必要的

因此,让我们从“
git
”的用法字符串中删除“
--indent heuristic
”选项

请注意,“git bull”仍将接受此选项,因为它是在
parse\u revision\u opt()
中解析的

精明的读者可能会注意到,这个补丁删除了一条提到“以下两个选项”的注释,但它只删除了一个选项

原因是该注释已过时:其他选项为“--压缩启发式”,并且已在中删除(diff:retire“Compression”heuristics,2016-12-23),但commit忘记更新此注释


如果你修改了文件,你可以看到“git diff——没有ext diff”的大块头。“我在阅读一些git文档时正在寻找“大块头”的定义”-你见过Linus Torvalds为他的沙滩装系列做模特的时候吗?
--- a/9c572b21dd090a1e5c5bb397053bf8043ffe7fb4:git-send-email.perl
+++ b/6dcfa306f2b67b733a7eb2d7ded1bc9987809edb:git-send-email.perl
@@ -231,6 +231,9 @@ if (!defined $initial_reply_to && $prompting) {
 }

 if (!$smtp_server) {
+       $smtp_server = $repo->config('sendemail.smtpserver');
+}
+if (!$smtp_server) {
        foreach (qw( /usr/sbin/sendmail /usr/lib/sendmail )) {
                if (-x $_) {
                        $smtp_server = $_;
--- a/9c572b21dd090a1e5c5bb397053bf8043ffe7fb4:git-send-email.perl
+++ b/6dcfa306f2b67b733a7eb2d7ded1bc9987809edb:git-send-email.perl
@@ -230,6 +230,9 @@ if (!defined $initial_reply_to && $prompting) {
        $initial_reply_to =~ s/(^\s+|\s+$)//g;
 }

+if (!$smtp_server) {
+       $smtp_server = $repo->config('sendemail.smtpserver');
+}
 if (!$smtp_server) {
        foreach (qw( /usr/sbin/sendmail /usr/lib/sendmail )) {
                if (-x $_) {