Бесплатный инструмент сравнения, который настраивается?
Есть ли инструмент сравнения, который позволяет мне написать регулярное выражение, чтобы убрать строку из разницы?
Мол, смотрите две строки:
this.Visible = true;
Visible = true;
И могу ли я написать выражение так, чтобы, если разница строк точно this
игнорируйте разницу.
Как мне конкретно это сделать?
Я приведу еще один пример. подобно System.Exception
а также Exception
оба одинаковы для меня, я не хочу показывать их в diff.
8 ответов
Я не смог найти эту функцию ни в одном программном обеспечении, хотя Beyond Compare и Araxis имеют эту функцию.
Из вики WinMerge кажется, что они не будут поддерживать плагины или подобные функции в будущем. Очень плохо.
Вы можете сделать это с KDiff3. Смотрите раздел документации по командам препроцессора.
Обновление: я вижу, что у вас есть дополнительный запрос, который, кажется, нуждается в программе семантического сравнения. Посмотрите Semantic Diff Utilities для некоторых предложений.
Лучшее программное обеспечение для сравнения источников, которое я когда-либо использовал, было Beyond Compare. С его помощью вы можете делать именно то, что просили: вводить регулярное выражение, которое говорит программе игнорировать определенные различия. Тем не менее, это не бесплатно.
Если вам действительно нужно бесплатное приложение, вы можете попробовать WinMerge. Хотя я не очень люблю интерфейс.
DiffMerge от SourceGear поддерживает это. Вам нужно создать набор правил, соответствующий файлам, которые вы объединяете, или отредактировать набор правил по умолчанию. В наборе правил добавьте шаблоны в свойство Lines to Omit. См. Свойство Ommitted Lines в онлайн-справке для получения дополнительной информации.
Попробуйте GNU diffutils. Если вы работаете в Windows, вы можете распространять GNU diff с Cygwin с сайта www.cygwin.com.
Если вы не можете найти существующий инструмент сравнения, который будет делать то, что вы хотите, вы можете написать свой собственный.
В Python есть модуль diff для написания инструментов, похожих на diff, которые будут обрабатывать все сложности алгоритма сравнения для вас. У них есть пример сценария, который будет выполнять различие файлов в стандартном формате diff/ patch Unix или параллельный HTML в 60 строк кода.
Различия в модуле позволяют вам определять "ненужные" фильтры для предварительной обработки строк, чтобы удалить части, которые вы не хотите включать в diff. Это функции Python, поэтому вы не ограничены совпадениями с регулярными выражениями.
Я быстро перечитал документацию, и фильтры работают только для игнорирования целых строк или отдельных символов, а это не то, что вам нужно. Однако вы можете легко предварительно обработать данные, которые вы вводите, чтобы удалить текст, который вы хотите игнорировать.
Notepad++ имеет плагин сравнения, который довольно настраивается.
Если вы знаете, как писать JavaScript, вы можете вставить соответствующее регулярное выражение в часть минимизации инструмента Pretty Diff. Инструмент полностью бесплатный, а код полностью открыт со встроенной документацией.
Если есть какая-то особая функция, которую вы хотели бы добавить в инструмент, кроме личной настройки, пожалуйста, дайте мне знать, и я добавлю ее.