diff и смысл сравниваемых файлов
А вот скажите, есть ли какая-нибудь вариация diff, умеющая не только сравнивать текст, а кроме того, еще и пользоваться информацией о структуре или смысле этого текста?
Например, сравнение двух исходников было бы намного гуманнее, если сначала их оба отпарсить в AST, а потом только сравнивать - сразу прекратились бы всевозможные заморочки типа "поменяли порядок расположения методов, переформатировали код - diff показывает хрень".
Если сравнивать что-то вроде таблиц БД, то очевидно, что сначала надо сравнить их метаданные, построить (возможно, при помощи человекопользователя) трансформацию одной таблицы в другую, а потом уже с ее учетом сравнивать, "что изменилось в записях".
В принципе, наверно можно такое сделать, прикрутив между diff и файлами какие-то промежуточные фильтры.
Например, сравнение двух исходников было бы намного гуманнее, если сначала их оба отпарсить в AST, а потом только сравнивать - сразу прекратились бы всевозможные заморочки типа "поменяли порядок расположения методов, переформатировали код - diff показывает хрень".
Если сравнивать что-то вроде таблиц БД, то очевидно, что сначала надо сравнить их метаданные, построить (возможно, при помощи человекопользователя) трансформацию одной таблицы в другую, а потом уже с ее учетом сравнивать, "что изменилось в записях".
В принципе, наверно можно такое сделать, прикрутив между diff и файлами какие-то промежуточные фильтры.
no subject
no subject