Вопрос

Возможность "хотфиксов" при разработке пакетов

Добрый день!
Подскажите, пожалуйста, как поступать в следующей ситуации.

1. Был разработан пакет MyPackage, допустим его версия 1.1.0.
Он был залит в хранилище SVN, затем был протестирован и установлен на продуктовом приложении.
2. Работа над пакетом продолжилась - была создана новая версия 1.2.0, которая была залита в SVN и которую мы пока не хотим публиковать на продуктовом приложении.
3. На продуктовом приложении обнаружены недочеты пакета MyPackage 1.1.0.

Имеем:
- на продуктовом приложении установлен MyPackage 1.1.0, в который мы хотим внести "хотфикс"
- в SVN лежит MyPackage 1.2.0 и содержит новый функционал, который не хотим переносить на продуктовое приложение.

Как правильно реализовать "хотфикс" для пакета MyPackage 1.1.0 на продуктовом приложении?
В пакет MyPackage 1.2.0 мы тоже хотим внести этот "хотфикс", как это правильно сделать?
И более общий вопрос: как можно организовать процесс разработки с ветками Stable (только хотфиксы) и Trunk?

Нравится

10 комментариев
Лучший ответ

В новое хранилище выгружается та версия, которая находится в приложении. Это получится Stable ветка.
После чего можно внести исправления в нужные схемы.
Вторая ветка, которая у вас 1.2.0 – Trunk.

Когда появится необходимость перевести на 1.2.0, в пакете меняется репозиторий на тот, который смотрит в 1.2.0 и обновляется пакет из хранилища.

Как будет процесс разработки с Trunk/Stable:
1. После выделения Stable, изменения вносятся только в trunk.
2. Хотфиксы переносятся точечно из Trunk в Stable.
3. Когда наступает момент перехода на Trunk – Stable приводится к виду Trunk.

Здравствуйте, Игорь.

Последовательность действий следующая:
1. Создать новый репозиторий
2. Добавить репозиторий из п.1 в приложение
3. Изменить репозиторий у MyPackage (в БД поле Syspackage.SysRepositoty.Id)
4. Выгрузить пакет в новое хранилище (Commit)
5. Внести hotfix
6. Обновить из хранилища

Здравствуйте, Сергей.

Спасибо за ваш ответ.
Однако, начиная с п. 4 непонятно, как решается описанная проблема.
В п. 4 в новое хранилище выгружается какая версия пакета? 1.2.0?
В какой момент и как мы возвращаемся к версии 1.1.0, в которую по идее надо вносить hotfix?

В новое хранилище выгружается та версия, которая находится в приложении. Это получится Stable ветка.
После чего можно внести исправления в нужные схемы.
Вторая ветка, которая у вас 1.2.0 – Trunk.

Когда появится необходимость перевести на 1.2.0, в пакете меняется репозиторий на тот, который смотрит в 1.2.0 и обновляется пакет из хранилища.

Как будет процесс разработки с Trunk/Stable:
1. После выделения Stable, изменения вносятся только в trunk.
2. Хотфиксы переносятся точечно из Trunk в Stable.
3. Когда наступает момент перехода на Trunk – Stable приводится к виду Trunk.

Сергей, спасибо.

Спасибо, Сергей

Сергей, спасибо за помощь!

Сергей, огромное спасибо.

Сергей, спасибо :)

Спасибо за оперативную обратную связь!

Показать все комментарии