Зло сливается в мерзавце?

"Человек gitglossary" содержит это определение злого слияния:

Злое слияние - это слияние, которое вносит изменения, которые не появляются ни у одного из родителей.

Я не уверен, что понимаю точку зрения авторов. Почему это зло?

4 ответа

Решение

Потому что он помещает в код вещи, которые никто никогда не просил быть там. Как будто у вас был этот код:

$foo = bar;
$baz = qxx;

и это изменение:

$foo = bar;
$foo++;
$baz = qxx;

слился с этим изменением:

$foo = bar;
$foo--;
$baz = qxx;

таким образом, который как-то произвел:

$foo = bar;
$foo++;
$foo--;
--$baz;
$baz = qxx;

Понятно, что это зло.

Я предполагаю, что это достаточно беспокоит, чтобы быть в man gitglossary потому что чем больше задействованы ваши алгоритмы слияния, тем больше вероятность того, что они произведут такую ​​вещь.

По словам самого Линуса Торвальдса (взято из списка рассылки git):

"злое слияние" - это то, что вносит изменения, которые произошли ни с одной стороны, и фактически не разрешают конфликт

Я думаю, что это может быть названо "злым слиянием", потому что это "сложный случай" для "git blame", который нужно решить при аннотировании файла (создание построчных аннотаций истории).


Зловещие слияния могут понадобиться, когда вы разработали функцию "A" на главной ветви и функцию "B" на боковой ветви, и эти функции конфликтуют семантическим (нетекстовым) образом. Примером может быть использование одного и того же имени для глобальной переменной с разными значениями - для этого требуется переименование переменной для одной из функций.

За злое слияниеgit show --cc"имеет непустую компактную комбинированную разницу (но я не уверен, что это отношение эквивалентности; импликация может быть только в одном направлении, то есть" слияние зла "затем непусто"git diff-tree -p --cc").

Стоит отметить, что "злое изменение" от "злого слияния" можно молча потерять, опровергая "злое слияние", содержащее "злое изменение", которое не конфликтует с другими коммитами. С помощью --preserve-merges не помогает в таком случае.

Другие вопросы по тегам