Определение файлов для исправления / исправления - PullRequest
1 голос
/ 31 октября 2008

Мы (иногда!) Должны выпустить горячие исправления для нашего продукта и сделать это, переиздав уязвимые файлы напрямую, а не с помощью новой программы установки. Продукт содержит большое количество элементов, часть управляемого кода, часть неуправляемого.

В настоящее время флаги разработки, которые создают артефакты (exe, dll), должны быть доставлены в оперативном исправлении. Мы хотели бы иметь возможность идентифицировать их автоматически, сравнивая их с предыдущей сборкой. Простой бинарный diff не работает, так как номера версий во всех файлах изменились как штамповка файлов с новым номером, если часть сборки.

Существуют ли какие-либо инструменты, которые сделают более разумное сравнение и решат, какие файлы следует включить? Нам все еще нужно, чтобы разработчик проверил список, это больше для того, чтобы ловить файлы, о которых разработчик не задумывался, чем наоборот.

(Примечание: изменение процесса оперативного исправления / сборки не является немедленным вариантом, независимо от того, должны ли мы отправлять отдельные файлы или нет, это другое обсуждение!)

1 Ответ

1 голос
/ 31 октября 2008

Вот варианты, которые я вижу:

  • На вашем компьютере сборки получите отчет о файлах, которые были изменены, и используйте структуру каталогов пути к файлу, чтобы определить, какие библиотеки были действительно обновлены. Не уверен, нарушит ли это правило "никаких изменений в процессе сборки" или нет.

  • Если вы хотите дождаться окончания сборки, я бы порекомендовал использовать инструмент сравнения бинарных файлов, такой как http://www.romeotango.com/Downloads/FileCompReadMe.txt. Используя его, вы можете получить набор различий, поэтому вам просто нужно получить скрипт использует инструмент для игнорирования различий, возникающих в результате номера версии. Вы можете выяснить, как выглядит номер версии, используя управляемый сценарий, в котором вы знаете, что два двоичных файла одинаковы, за исключением номера версии, и обратите внимание на различия. Сделайте это для нескольких ваших библиотек, и, надеюсь, шаблон появится достаточно, чтобы вы могли написать его.

...