Я бы использовал DVCS как git или mercurial с разветвлением.Я использую небольшое изменение описанной здесь модели ветвления:
http://nvie.com/posts/a-successful-git-branching-model/
Позвольте мне описать вам мой рабочий процесс развертывания:
У меня есть 4 среды:
prod
: Производство - то есть: LIVE
stage
: промежуточный сервер aka: тестовая среда.Это последняя остановка перед продвижением кода в продукт.
int
: сервер интеграции
dev
: разработка
Каждый разработчик получает свою локальную копию кода и работает с моделью ветвления, описанной ранее.
Среда интеграции постоянно объединяет исходные материалы разработчиков (я использую простой коммитподключите сценарий оболочки, который делает это. Вы также можете рассмотреть более сложные инструменты CI, которые могли бы сделать это).Int будет иметь самую последнюю версию приложения - «новейшую и лучшую».Модульное тестирование используется, чтобы убедиться, что никто ничего не сломает.
Непосредственно перед выпуском кодовая база перемещается на сцену.Такие вещи, как функциональные тесты, и тестирование UA выполняется на этом этапе.Если все выглядит хорошо, то я нажимаю от стадии к продукту, и код тогда жив.
Я лично использую NetBeans в качестве своей IDE - есть плагины, которые прекрасно интегрируются в git / mercurial.
И наконец: стратегия рабочего процесса / развертывания - это нечто уникальное для вашего проекта / организации.Я просто ( в широком смысле ) описал мой - все пункты могут относиться или не относиться к вам, но я надеюсь, что у вас есть представление о том, как все должно работать в идеале.