Мне любопытно, какую стратегию управления версиями исходных текстов применили бы другие к java-проекту (веб-приложению), для которого весьма вероятно иметь настройку для нескольких клиентов.
Проект будет иметь стандартную версию, но для некоторых его клиентов будут сделаны некоторые настройки (в разных ветках).
Читая эту тему:
Какую стратегию ветвления следует использовать при разработке / обслуживании веб-приложения?
Полагаю, что "Ветвь за выпуском" подойдет для разработки стандартной версии проекта.
Теперь при работе с веткой клиента в коде выполняются некоторые улучшения / исправления ошибок, которые будут полезны для другой версии клиента / стандартной версии, это будет означать, что для каждой из ветвей будут выполняться слияния и тесты, чтобы будьте в курсе всех событий.
В качестве ограничения, для этого проекта мы застряли с CVS в качестве системы управления версиями.
Для создания версий созданных артефактов мы будем использовать maven (зависимость: artifactId, groupId, версия, классификатор - имя клиента - чтобы четко различать артефакты).