В контексте git (и diff), что такое «кусок»

Я искал определение «ломоть» при чтении документации Git.

Я знаю, что это означает описание различия между двумя файлами и то, что он имеет четко определенный формат, но я не мог вспомнить краткое определение.

Я пытался искать с помощью Google, но было много ложных хитов.

Ответы на вопрос(3)

вы можете прочитать это простое объяснение также:https://mvtechjourney.wordpress.com/2014/08/01/git-stage-hunk-and-discard-hunk-sourcetree/

Решение Вопроса

При сравнении двух файлов diff находит последовательности строк, общих для обоих файлов, с чередованием групп разных строк, называемых ханками.

Вот:http://www.gnu.org/software/diffutils/manual/html_node/Hunks.html

Какое именно краткое определение я искал. Надеюсь, это поможет кому-то еще!

 Gregg03 июн. 2016 г., 20:28
вы можете увидеть все с помощью 'git diff --no-ext-diff', если вы изменили файлы.

сходит отГну диффузный формат, Еще более кратко:

Каждый блок показывает одну область, где файлы отличаются.

Но задача для Git состоит в том, чтобы определить правильноеграницы за кусок.

Остальная часть ответа помогает проиллюстрировать, как выглядит кусок в Git:

После различных эвристик (например,уплотнение один, который отсутствует в Git 2.12), сопровождающие Git остановились на отступе, который был введен в2016 с 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 = $_;

Следующая разница эквивалентна, но, очевидно, предпочтительнее с эстетической точки зрения:

--- 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 $_) {

Этот патч учит Git выбирать лучшие позиции для таких «ползунков различий», используя эвристику, занимающую позиции соседних пустых строк.и отступ соседних строк во внимание.

С Git 2.14 (3 квартал 2017 г.) этот эвристический отступ будет по умолчанию!

Увидетьсовершить 1fa8a66 (08 мая 2017 г.)Джефф Кинг (peff).
Увидетьсовершить 33de716 (08 мая 2017 г.)Стефан Беллер (stefanbeller).
Увидетьсовершить 37590ce, совершить cf5e772 (08 мая 2017) Марк Бранко.
(ОбъединеноJunio ​​C Hamano -gitster - всовершить 53083f8, 05 июня 2017 г.)

diff: включить отступ по умолчанию для эвристики

Эта функция была включена в v2.11 (выпущена 2016-11-29), и мы не получили отрицательных отзывов. Наоборот, все отзывы, которые мы получили, были положительными.

Включите его по умолчанию. Пользователи, которым не нравится эта функция, могут отключить ее, установивdiff.indentHeuristic.

Ваш ответ на вопрос