I am curious about what source versioning strategy would others apply on a java project (web application) which is very probable to have customization for several customers.
The project will have a standard version, but for some of its customers there will be some customizations to be done (on different branches).
By reading this thread : What branching strategy should I use during the development/maintenance of a web application? I guess that the "Branch by release" would fit for the development of the standard version of the project.
Now while working on a customer branch there are some improvements/bugfixes performed on the code on which other customer/standard version would benefit this would mean that for each of the branches there will be merges & tests to be performed in order to be keep everything up to date.
As a constraint, for this project we are stuck with CVS as a source versioning system.
For versioning of the artifacts which are built we'll use maven (dependy : artifactId, groupId, version, classifier - customer name - in order to clearly distinguish the artifacts).