We have a framework created in .NET which controls hardware devices. The entire framework uses MEF so it relies heavily on interfaces.
For reasons beyond our control we had to change the hardware and that required some breaking changes to some of the interfaces.
The project for the old hardware was put on hold for a while and we started working on a graphical application which uses the new version of the framework.
Now, much later, they want us to support the old hardware again, so we're thinking of backporting the existing graphical application to use the old framework and maintain two versions.
The framework is one Visual Studio solution with multiple projects, and the graphical application is another Visual Studio solution with a few projects.
Some parts (projects in the framework solution) did not rely on changed interfaces, others did.
For source control we have a subversion repository.
Has anybody had any experience with managing something like this? Are there any best practices? Suggestions?