SVN y versionado de soluciones Visual Studio
Cuando queremos versionar soluciones de Visual Studio, existen ciertos archivos que se deben incluir en el repositorio, y archivos que no. Si estamos usando Resharper, también vamos omitir los archivos que agrega a nuestras carpetas. La estructura de directorios que propongo es esta:

En este ejemplo para interactuar con el repositorio SVN, utilizaremos Tortoise SVN.
Consideremos una solución winApp, que tiene dependencias con la librerÃa NHibernate.dll, que se encuentra en la carpeta lib. La solución en el Visual Studio luce asÃ:
Los archivos de dicha solución serÃan los siguientes:
Una vez que tenemos nuestra solución creada, y nuestro repositorio funcionando, realizamos un checkout sobre una carpeta que elijamos, en mi caso es “D:\checkouts”. Ahà estaran los archivos que necesitan sincronizarse contra el repositorio. Luego del checkout, la carpeta seguirá vacia, pero lista para la sincronización.
Ahora copiamos nuestras carpetas “lib” y “winApp” dentro de “checkouts/” para agregarlas al versionado. Las seleccionamos y hacemos: TortoiseSVN -> Add…
Ahora tenemos que seleccionar los archivos que vamos a versionar. Dicho de manera contraria, eliminamos archivos que no deseamos que estén en el repositorio. Los archivos no versionables son:
- Carpeta bin/ y su contenido.
- Carpeta obj/ y su contenido.
- Carpeta _ReSharper.*/ y su contenido.
- Archivo *.resharper
- Archivo *.suo
Y la selección debe quedar similar a esto:
Una vez que agregamos los archivos, realicemos el commit !

Los archivos que no participan en el versionado son los desmarcados. Y luego el repositorio deberÃa lucir asÃ:
Listo, tenemos nuestras solución sincronizada y versionada !
Como tip final, podemos usar AnkhSVN, un plugin para Visual Studio que nos permite gestionar los comandos de SVN desde Visual Studio.

