I have used ClearCase for source code control. In it only one VOB was maintained for a project.
If there was any custom development then a new branch will be created. In each folder there was a config file for each folders and there CM can specify which version of an artifact needs to be checked out. So if type ls
then it will print the file with particular version as given in config although the LATEST version is something else.
In this way CM can build a custom project for a given customer from the same source.
I think this is a standard way of building jar / war from source by picking a particular version.
How to achieve the same functionality in SVN?