Há uma abordagem alternativa que você deve discutir: BDD
Por favor, considere o desenvolvimento orientado a comportamento com especificações executáveis. Suas especificações são simplificadas em uma série de conjuntos de instruções dadas quando e armazenadas em arquivos de texto. Uma ferramenta BDD como Cucumber ou SpecFlow converte esses arquivos de texto em testes executáveis, que sua ferramenta de construção pode executar.
Pepino: http://cukes.info/ - BDD para Ruby
SpecFlow: http://www.specflow.org/ - BDD para .Net
Para uma demonstração rápida do fluxo de trabalho com uma ferramenta como SpecFlow, consulte o passo a passo do SpecFlow de Rob Conery: http://tekpub.com/view/concepts/5
Agora, não apenas você está versionando seu código, mas suas especificações e sua ferramenta de Integração Contínua (pense em TeamCity, CruiseControl, Hudson, etc.) está forçando que todas as especificações ainda sejam válidas em TODAS as versões ... Isso é valioso para você?