Repositories face issues to do with versioning schema and data as well as integrating with an organization’s lifecycle processes. Here is a whitepaper I wrote on how the “Oslo” team thinks about handling various lifecycle/versioning issues http://msdn.microsoft.com/en-us/library/dd638048.aspx. The whitepaper deals with the following issues:
Application lifecycle management (ALM): Facilitating team development of software in a continuous cycle of steps (that is, definition, design, development, testing, deployment, and management). Traditionally, Source Code Control Systems (SCCS) and build systems, like Visual Studio Team Foundation Server, automate ALM.
Schema evolution: Changing schemas over time in such a way that applications continue to run unchanged or with minimal changes.
“Oslo” product versioning: Upgrading a customer’s “Oslo” repository, from version n to version n+1, in such a way that the data is preserved.
Application versioning: The ability to upgrade applications, stored in the “Oslo” repository, to new versions. The upgrade process has the option to retain the data from older versions of the application.
Operational versioning: The ability to understand operational/management changes to a deployed application.