В целях поддержания чистоты и готовности моего SVN-канала к развертыванию я использовал следующую модель управления исходным кодом . Для нетерпеливых основная концепция заключается в том, что вы создаете ветки разработки для реальной разработки и оставляете ствол чистым и готовым к развертыванию в любое время (без мусора в стволе).
В дополнение к этому я настраиваю TeamCity для непрерывной интеграции. В TeamCity я хотел бы убедиться, что все ветви разработки, а также ветка, готовая к развертыванию (в моем случае это магистраль), собраны правильно и проходят все модульные тесты.
Это может быть глупый вопрос, но я не слишком хорошо знаком с TeamCity. Должен ли я создать новый проект TeamCity для каждой ветви? В частности, в ветви, готовой к развертыванию, есть несколько дополнительных правил, чем в ветви разработки. Например, выпуски следует сохранять в каталогах с версиями в файловой системе (например, C: \ Projects \ MyProject \ 1.0.187 ..., C: \ Projects \ MyProject \ 1.0.188 ...), чтобы обеспечить легкий доступ к двоичные файлы, в любой момент времени. С другой стороны, сохранение версированных копий сборок в ветках разработки не является необходимым и приведет к потере места на жестком диске.
В TeamCity я бы предпочел видеть только один проект для каждого программного проекта. Другими словами, если моя компания работает над X количеством проектов разработки, я бы предпочел, чтобы этот проект был указан только один раз, а не X * 2 (при условии, что у каждого проекта есть только две ветви).