17 Jul 17 09:08, you wrote to me: VS>> Чем отличается "merge file1 file2 file3" от "diff file2 file3 | VS>> patch file1" с точки зрения внутренней кухни? AK> именно тем, что merge знает о существовании file1, в отличие от diff, AK> это 3-way diff.
AK> man diff3 - вот он ничем не отличается, да.
VS>> Hу кроме того, что конфликты будут отражены внутри file1 вместо VS>> ".rej". AK> в rej вообще может ничего не попасть, а код работать не будет. AK> Или наоборот - в file1 вообще может уже не быть нужного контекста. AK> merge справится, потому что знает, куда он делся.
Откуда merge/diff3 может знать, куда он делся?
Я готов поверить, что в случае VCS операция merge заглядывает в историю изменений. Хотя тоже вряд ли. Если ты знаешь систему контроля версий, в которой merge происходит с учетом истории - назови ее, пожалуйста, чтобы я почитал, как это устроено внутри.
В случае же отдельно стоящей утилиты merge или diff3 она никак не может знать, что куда делось из MYFILE. Разве что если не делось, а сдвинулось, можно рискнуть магию с fuzz и т.п.