Стратегия ветвления для параллельной разработки на основе задач - PullRequest
1 голос
/ 20 октября 2011

У нас есть три среды или веб-сайт (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" для развертывания на нашем сервере разработки и поддержания чистоты магистрали.и синхронизируется с нашим филиалом "Производство".Эта конкретная проблема, похоже, решается так, потому что каждый разработчик будет создавать свою ветку из чистого ствола, а не с модификациями некоторых разработчиков.

1 Ответ

1 голос
/ 20 октября 2011

Я немного растерялся, когда прочитал твой вопрос.Если Разработчик 1 еще не завершил работу и не готов к тому, чтобы его предыдущая модификация была скомпилирована и развернута в рабочей среде, нецелесообразно объединять Задачу 1 со стволом.

Как насчет этого: Каждый разработчик создает свою собственную ветку «Задача i».Затем они могут работать на ветках одновременно.Выполнение регистрации, проверки и т. Д. После выполнения своих задач они могут слить свои ветви обратно в ствол.Таким образом, вы можете убедиться, что проект на вашем производственном сервере завершен, а не является частью вашей работы.

...