Алгоритм сравнения, смотрящий на этот оригинальный и новый текст, не может определить реальную последовательность изменений.Таким образом, он не может знать, переместил ли ты ABC из одного места в другое, или удалил его один и вставил в другой.Обычный diff в этом случае просто говорит вам, что что-то было удалено в одном месте, а что-то другое (он даже не знает, что это то же самое) было вставлено где-то еще.
Можно создать инструмент для обоснованных предположенийчто касается правдоподобного набора правок.Наш Smart Differencer использует преимущества структуры кода и сходства фрагментов кода, чтобы предположить, что блоки кода были перемещены, а не вставлены / удалены, даже несмотря на изменение имен переменных.