Я согласен с вами, другие коллеги постеры.c0rnh0li0 Вам необходимо переосмыслить свои правила регистрации и слияния.
Посмотрите на макет своего репозитория и попытайтесь определить правила, которые могут легко повторяться любым пользователем в команде и которые помогают вносить изменения, соответственно, из стабильного в нестабильный.Для меня это позволяет выполнять слияние в основном в одном направлении.
Пример макета для сценария ветки обслуживания
branches/v1
-approved and shipped/deploy
-Only bugfixes allowed
branches/v2
-is not approved by the client but nearly ready
-Fixes and feature-commits allowed that focus on getting v2 stable & ready
-receive bugfixes commited in v1 (merge down)
branches/v3
-is not approved by the client and far from ready
-Fixes and feature-commits allowed that focus on getting v3 stable & ready
-receive bugfixes commited in v2 (merge down)
trunk
-All syntax-error free commits allowed (mainline)
-receive merges from LATEST stable branch (merge down from v3 in this case)
Верхняя ветвь самая старая с наименьшим количеством функций, новысокая стабильность (хорошо проверено, в недавнем прошлом не было добавлено много новых функций).С другой стороны, ствол довольно нестабилен и имеет передовые черты.v2 и v3 - это что-то среднее.Вы также можете добавить подвиги «под» стволом, которые будут даже более нестабильными, чем ствол.Направления слияния остаются прежними.Я хотел бы процитировать мантру «объединить, скопировать».
Чем больше одновременных выпусков вы готовите / поддерживаете, тем больше слияний вам придется делать.Но благодаря отслеживанию слиянием, это не так уж и большая задача, IMHO, и это гарантирует, что никаких ошибок не осталось, и их придется заново обнаруживать и исправлять вручную.
Я не упомянул теги здесь.Если вы можете создавать их и не выпускать из ветки напрямую.
Теперь, хотя это должно значительно улучшить управление потоком изменений и помочь изолировать разработку с высоким уровнем риска от среды с низким уровнем риска, существует проблема.осталось визуализировать клиенту то, что он тестирует / просматривает.
Визуализация происхождения приложения VCS для клиента
Возможности:
- Если это хост веб-проекта, версии на URL-адресах, которые содержат название ветви
- Для любого проекта: просто отметьте логотип или текстовое свойство, которое содержит что-то вроде «версия 3.x», иотобразите его в своем приложении
- Самое классное решение - использовать svn ключевые слова и проанализировать значение $ HeadURL $ в вашем приложении, чтобы динамически отобразить имя ветви, из которой эта сборка происходит от