Лучший подход к управлению версиями программного обеспечения через ветви кода? - PullRequest
0 голосов
/ 27 марта 2010

Я хотел бы настроить готовое программное обеспечение, которое имеет Lite Edition и Enterprise Edition. Функции почти одинаковы, так что мои расширенные настройки могут работать для обоих, но я должен перекомпилировать для каждой версии, потому что они имеют разные сборки версий.

Может кто-нибудь помочь мне посоветовать, как это поддерживать? Я использую Visual Studio 2008 и Visual SVN. Должен ли я создать 2 совершенно разных решения, создать одно решение с дублирующимися проектами или создать филиалы? Ветви кажутся элегантным маршрутом, но в чем идея? Создать «облегченную версию» и «корпоративную версию» из ствола ... при этом стволом будет «облегченная версия»?

1 Ответ

0 голосов
/ 27 марта 2010

Это зависит от того, насколько ваш код отличается между ними. В лучшем случае, если это просто вопрос ссылки на разные версии сборки, используйте NAnt или аналогичные и просто создайте цель сборки для каждой из них.

Если бы жизнь не была такой утопической, я бы создал три проекта для одной ветви: одну библиотеку классов, содержащую весь общий код, и другую библиотеку классов для каждой версии, которая содержит только неразделенный код.

Если общий код имеет зависимости от этих многоверсионных сборок, то, насколько я могу судить, вы более или менее застряли в том, чтобы что-то делать вручную. Это означает поддержание ветвления на цель и регулярное объединение между ними для синхронизации общих частей. Использование распределенной CMS облегчит задачу слияния, а создание батареи модульных тестов поможет уменьшить количество ошибок, которые вносят эти межпроектные слияния.

...