Our current code base is contained in a versioning system that is old and outdated (Visual Sourcesafe 5.0, mid 1990's), and contains a mix of packages that are no longer used, ones that are being used but no longer updated, and newer code. It is also a mix of 4 languages, and includes libraries for some of our systems (Such as Dialogic, Sun Tzu {clipper}) implementations. This breaks down into the following categories:
Legacy code - No longer used (Systems that have been retired or replaced, etc)
Legacy code - In current use (No intentions for upgrades or minor bug fixes, only major fixes if needed)
Current code - In current use, and will be used for future versions/development
Support libraries - For both legacy and current code (Some of the legacy libraries are no longer available as well)
We would like to migrate this to a newer versioning system as we will be adding more developers, and expanding the reach to include remote programmers.
When migrating, how do you structure it? Do you just perform a dump of all the data and then import it into the new system, or do you segregate according to type before you bring it into the new system? Do you set up a separate area for libraries, or keep them with the relevant packages? Do you separate by language, system, both? A general outline and methodology is fine, it doesn't need to be broken down to individual program level.