diff и смысл сравниваемых файлов
Nov. 21st, 2010 01:44 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
А вот скажите, есть ли какая-нибудь вариация diff, умеющая не только сравнивать текст, а кроме того, еще и пользоваться информацией о структуре или смысле этого текста?
Например, сравнение двух исходников было бы намного гуманнее, если сначала их оба отпарсить в AST, а потом только сравнивать - сразу прекратились бы всевозможные заморочки типа "поменяли порядок расположения методов, переформатировали код - diff показывает хрень".
Если сравнивать что-то вроде таблиц БД, то очевидно, что сначала надо сравнить их метаданные, построить (возможно, при помощи человекопользователя) трансформацию одной таблицы в другую, а потом уже с ее учетом сравнивать, "что изменилось в записях".
В принципе, наверно можно такое сделать, прикрутив между diff и файлами какие-то промежуточные фильтры.
Например, сравнение двух исходников было бы намного гуманнее, если сначала их оба отпарсить в AST, а потом только сравнивать - сразу прекратились бы всевозможные заморочки типа "поменяли порядок расположения методов, переформатировали код - diff показывает хрень".
Если сравнивать что-то вроде таблиц БД, то очевидно, что сначала надо сравнить их метаданные, построить (возможно, при помощи человекопользователя) трансформацию одной таблицы в другую, а потом уже с ее учетом сравнивать, "что изменилось в записях".
В принципе, наверно можно такое сделать, прикрутив между diff и файлами какие-то промежуточные фильтры.
no subject
Date: 2010-11-21 11:46 am (UTC)Чтобы дифф понимал ренеймы и рефакторинг в качестве изменений не текста, но смысла.
no subject
Date: 2010-11-21 12:46 pm (UTC)(весь код в редакторе парсится в AST в реальном времени, оттого и рефакторинги все работают как положено).
no subject
Date: 2010-11-21 01:05 pm (UTC)no subject
Date: 2010-11-21 03:07 pm (UTC)no subject
Date: 2010-11-21 05:08 pm (UTC)no subject
Date: 2010-11-21 02:09 pm (UTC)no subject
Date: 2010-11-21 05:12 pm (UTC)no subject
Date: 2010-11-21 04:16 pm (UTC)no subject
Date: 2010-11-21 11:55 am (UTC)no subject
Date: 2010-11-21 11:57 am (UTC)no subject
Date: 2010-11-21 12:07 pm (UTC)Для каждого типа текста иметь свой патченный diff мне кажется извратом, но некоторые по этому пути идут. xmldiff в репозитории наблюдаю.
no subject
Date: 2010-11-21 10:19 pm (UTC)1 задача - 1 утилита.
no subject
Date: 2010-11-21 10:47 pm (UTC)2. Иногда изменение порядка имеет смысл - и не хотелось бы, чтобы нормализатор его пришиб.
no subject
Date: 2010-11-21 11:38 pm (UTC)no subject
Date: 2010-11-21 12:08 pm (UTC)no subject
Date: 2010-11-21 12:42 pm (UTC)no subject
Date: 2010-11-21 01:00 pm (UTC)no subject
Date: 2010-11-21 01:02 pm (UTC)no subject
Date: 2010-11-21 01:43 pm (UTC)no subject
Date: 2010-11-21 12:43 pm (UTC)Осталось сделать удовлетворяющий нуждам нормализатор.
no subject
Date: 2010-11-21 12:47 pm (UTC)no subject
Date: 2010-11-21 01:35 pm (UTC)no subject
Date: 2010-11-21 01:07 pm (UTC)no subject
Date: 2010-11-22 10:25 am (UTC)no subject
Date: 2010-11-23 02:47 am (UTC)no subject
Date: 2010-11-23 08:40 am (UTC)раз) KDiff 3
два) CSDiff