我在阅读一些git文档时正在寻找"hunk"的定义.
我知道这意味着描述两个文件之间的区别,并且它有一个定义良好的格式,但我无法想到一个简洁的定义.
我尝试用谷歌搜索,但有很多有点虚假的点击.
nzc*_*nzc 11
最后我发现了这个:
比较两个文件时,diff会查找两个文件共有的行序列,其中散布着名为hunks的不同行组.
这里:http: //www.gnu.org/software/diffutils/manual/html_node/Hunks.html
这正是我所寻找的那种简洁的定义.希望这可以帮助其他人!
术语"大块头"确实不是Git特有的,而是来自Gnu diffutil格式.更简洁:
每个块显示文件不同的一个区域.
但Git面临的挑战是确定一个大块头的正确边界.
其余的答案有助于说明Git中的大块头:
经过各种启发式测试(比如压缩版本,在Git 2.12中消失了),Git维护者选择了缩进版本,该版本于2016年9月推出,使用Git 2.11,提交433860f.
diff中添加/删除的一些组可以向上或向下滑动,因为组边缘的线不是唯一的.
为这些群体挑选好的转变不是正确的问题,但肯定会对美学产生重大影响.
例如,考虑以下两个差异.
第一个是标准Git发出的:
--- 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 = $_;
Run Code Online (Sandbox Code Playgroud)
以下差异是等价的,但从美学的角度来看显然是优选的:
--- 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 $_) {
Run Code Online (Sandbox Code Playgroud)
这个补丁教导Git使用启发式方法为这种"差异滑块"选择更好的位置,该方法考虑了附近空白线的位置和附近线的缩进.
使用Git 2.14(2017年第3季度),缩进启发式将是默认的!
请参阅Jeff King()提交1fa8a66(2017年5月8日).
见Stefan Beller()提交33de716(2017年5月8日).
请参阅Marc Branchaud的提交37590ce,提交cf5e772(2017年5月8日).(通过合并JUNIOÇ滨野- -在提交53083f8,2017年6月5日)peffstefanbeller
gitster
diff:默认启用缩进启发式
该功能包含在v2.11(2016-11-29发布)中,我们没有得到任何负面反馈.恰恰相反,我们得到的所有反馈都是积极的.
默认情况下将其打开.不喜欢该功能的用户可以通过设置将其关闭
diff.indentHeuristic.
| 归档时间: |
|
| 查看次数: |
2776 次 |
| 最近记录: |