Какая хорошая практика для создания патчей программного обеспечения?

Недавно я взял на себя ответственность за программный продукт, который был развит довольно неорганизован, и я создал новую структуру проекта, репозиторий исходного кода, отслеживание проблем и сборку с использованием nant и teamcity. Я нахожусь в точке, где каждая фиксация одной из основных ветвей компилируется, тестируется и встраивается в настройку.

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

Некоторые подробности о моей текущей настройке:

Repository: - git: - 2 основных ветки: разработка и мастер

Система сборки: - teamcity - 2 конфигурации: одна для построения каждой ветки - сборка состоит только из одного шага сборки: - nant runner: nant script является частью репозитория и содержит следующие цели: clean, init, compile, test, deploy, build_setup (с использованием inno setup)

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

Ответ 1

Если у вас нет массивного многомегабайтного приложения конечного пользователя, создание патчей (которые, как я предполагаю, вы хотите быть минимальными), является сложной задачей, поскольку вам придется предоставлять исправления от каждой предыдущей версии до самых обновленный.

Кроме того, вы можете инвестировать в инфраструктуру autoupdate, чтобы приложение обновлялось каждый раз, когда выпускается новая версия.

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

Ответ 2

Вы должны посмотреть что-то вроде Microsoft ClickOnce для обновлений/патчей.