У нас есть три среды или веб-сайт (dev, staging и production), на которых выполняется версия нашего приложения ASP.NET.Мы используем SVN и непрерывную интеграцию (Teamcity), чтобы помочь автоматически развернуть приложение на каждом веб-сервере.
Наш текущий рабочий процесс разработки основан на системе задач (или рабочих заданий).Разработчику дано задание, которое он должен выполнить.Многие разработчики могут работать над проектом одновременно, но в разных частях приложения.
Мое текущее решение заставляет разработчиков создавать отдельные ветви для каждой задачи.Когда пользователь фиксирует исходный код транка, он компилируется и развертывается на нашем веб-сервере dev.
Разработчик 1 запускает новую задачу и создает новую ветвь, скажем, «Задача 1», из исходного кода транка.
Он фиксирует свой код в своей ветви, а затем объединяет ветку со стволом.
Его изменения скомпилированы с остальной частью кода и развернуты на веб-сервере dev.
Разработчик 2 запускает новую задачу и создает ветвь из ствола (с изменениями Dev 1).
Затем он вносит свои изменения, передает свой код в «Задачу 2» и объединяет ветвь со стволом.
Код снова компилируется и развертывается на веб-сервере dev.
Разработчик 1 еще не завершен, но внесенные Разработчиком 2 изменения готовы к развертыванию в рабочей среде.
Dev 2 затем объединяет «Задачу 2» с веткой «Производство».
И вот в чем проблема. Часть изменений, внесенных Dev 1, находится в производстве, и это ПЛОХАЯ вещь.
Мне нужно найти стратегию ветвления, которая позволила бынам продолжать разработку и реализовывать каждую задачу по очереди.
У вас есть какие-либо предложения?Является ли SVN подходящим инструментом для работы?
ОБНОВЛЕНИЕ
Сейчас я думаю о создании ветви "Dev" для развертывания на нашем сервере разработки и поддержания чистоты магистрали.и синхронизируется с нашим филиалом "Производство".Эта конкретная проблема, похоже, решается так, потому что каждый разработчик будет создавать свою ветку из чистого ствола, а не с модификациями некоторых разработчиков.