title: How to manage versions of a software in a CVS with lots of libraries
body: <p>We are developing a large software project which consists of a large number of projects, components and libraries. Our management has decided that for every deployment a snapshot of the entire system has to be saved so when a problem arises we can easily have the exact version of the entire system. The usual solution would be to branch the project after each deployment. And by the way, we are using <code>VS2008</code>, <code>C#</code> and <code>SVN</code>.  But this is not practical beacase of the large number of sub-projects and libraries which also have their versions and are modified. </p>
  
  <p>One answer to this problem is to have backwards compatibility and always fix problems on the trunk version, but in our case it would not be possible to test the changes of the system ( the software is an ITS system and once a system is deployed we can't do any more intergration testing).</p>
  
  <p>And to make matters worse, out deploments are modular, so each time a different combinations of components is deployes and there is also the localization.</p>
  
  <p>How are you resolving these kinds of problems? Are there any tools that can help?</p>