Recientemente comencé a trabajar en varios proyectos de C# en Visual Studio como parte de un plan para un sistema a gran escala que se utilizará para reemplazar nuestro sistema actual construido a partir de un conjunto improvisado de varios programas y guiones escritos en C y Perl. Los proyectos en los que ahora estoy trabajando han alcanzado una masa crítica por estar comprometidos con la subversión. Me preguntaba qué se debe y qué no se debe comprometer con el repositorio de proyectos de Visual Studio. Sé que va a generar varios archivos que no son más que artefactos de construcción y que realmente no necesitan comprometerse, y me preguntaba si alguien tenía algún consejo para usar SVN correctamente con Visual Studio. Por el momento, estoy usando un servidor SVN 1.6 con beta de Visual Studio 2010. Cualquier consejo, opiniones son bienvenidas.Mejores prácticas para proyectos de Subversion y Visual Studio
Respuesta
Se pueden añadir los siguientes archivos a Visual control de código fuente del Estudio:
- Archivos de soluciones (
*.sln
).- Archivos de proyecto, por ejemplo,
*.csproj
,*.vbproj
archivos.- Archivos de configuración de la aplicación, basados en XML, utilizados para controlar el comportamiento en tiempo de ejecución de un proyecto de Visual Studio.
Los archivos que no se puede agregar a control de código fuente son los siguientes:
- ficheros de opciones de usuario Solución (
*.suo
).- Archivos de opción de usuario del proyecto, por ejemplo,
*.csproj.user
,*.vbproj.user
archivos.- Archivos de información web, por ejemplo,
*.csproj.webinfo
,*.vbproj.webinfo
, que controlan la ubicación raíz virtual de un proyecto web.- Generar archivos de salida, por ejemplo,
*.dll
y*.exe
archivos.
Esa es una buena lista. Básicamente, usted quiere un conjunto mínimo de archivos necesarios para compilar los proyectos. –
Hay un [caso] (http://stackoverflow.com/a/72370/4847772) que se creará para la confirmación del '.user', al menos en algunos casos. Esos archivos que uno no agrega deben agregarse a ['svn: ignorar'] (http://svnbook.red-bean.com/en/1.8/svn.advanced.props.special.ignore.html). – PJTraill
Aquellos que usan Visual Studio 2015 también querrán excluir la carpeta '.vs' del control de origen. Ver http://stackoverflow.com/q/31526899/2615878. – Theophilus
nivel Solución:
- añadir el archivo de solución
.sln
- ignorar el archivo de opciones de usuario solución
.suo
nivel de proyecto:
- añadir el
.csproj
,.vbproj
(y C++ proj?) archivos - ignoran el
.csproj.user
,.vbproj.user
archivos - ignorar el directorio
bin
- ignorar el directorio
obj
- ignoran los archivos/directorios que consiguen generan durante el tiempo de ejecución (es decir. logs)
Si utiliza y complementos VS, pueden generar archivos que también deben ignorar (es decir. ReSharper genera .resharper
y .resharper.user
archivos).
Los elementos de ignorar pueden ignorarse explícitamente por nombre de archivo (es decir, MyProject.csproj
), o por un patrón de comodín (es decir, *.csproj.user
).
Una vez que haya fijado sus ignora arriba, comprobando una copia limpia de la fuente luego construir entonces debe mostrar ninguna modificación (es decir. No hay nuevos archivos sin versión).
Sugeriría usar AnkhSVN - un complemento de control de fuente de Subversion para Visual Studio 2008/2010.
Puede usarlo para realizar su adición inicial y confirmar la solución, los proyectos y las fuentes en el repositorio y no agregará ninguno de los artefactos de compilación. No agregará nada que genere su compilación, solo los archivos a los que hace referencia su solución. Si hay otras partes y piezas que necesita que no están en su solución, puede agregarlas después.
Probé AnkhSVN, y encontré que tendía a interpretar prematuramente acciones dentro del IDE como acciones en el control de código fuente, y alentar a los desarrolladores a realizar confirmaciones de archivo único. Estoy mucho más feliz con Tortuga. – PJTraill
¡Pero es útil que sepa qué ignorar! – PJTraill
Incluiría manualmente todos los archivos que creo que no debería controlar la versión.
Mi patrón global de ignorado es:
.dll .pdb .exe .cache .webinfo .snk bin obj depuración _Resharper.ReSharper usuario
Ponga los siguientes archivos en el control de versiones:.
- .dsw (VS6 espacio de trabajo)
- .dsp (proyecto VS6)
- .sln (VS Solution)
- * proj los archivos de proyecto (VS) de varios tipos
- , por supuesto, los archivos de origen y otros artefactos se crea
Haz no poner los siguientes archivos en el control de versiones:
- .ncb (algo que ver con la navegación o intellsense)
- .suo (configuración del espacio de trabajo del usuario, como la colocación de ventanas, etc - creo)
- .user (configuración del proyecto de usuario como puntos de interrupción, etc - Creo)
Además, no se pone en ningún archivo de objetos, archivos ejecutables, archivos generados automáticamente (como cabeceras que podrían generarse).
En cuanto a archivos ejecutables y otros archivos generados, puede haber una excepción si desea poder archivar lanzamientos. Puede ser una buena idea, pero es probable que desee administrarlo de forma un poco diferente y posiblemente en un lugar diferente al código fuente. Si haces esto, también archiva tus archivos .pdb para que puedas depurar las cosas más tarde. Es posible que desee utilizar un Servidor de símbolos para almacenar sus símbolos archivados (consulte Debugging Tools for Windows para ver el servidor de símbolos y su documentación).
Aquí está mi lista de archivos-VS específico que excluyo del SVN:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
Nit-picking: ¡diga 'no poner en ... ejecutables', pero en el próximo párrafo usted dice que uno podría! – PJTraill
En caso de que usted está utilizando la lista de ignorados, SVN entre mayúsculas y minúsculas. Así que recuerde ignorar las carpetas bin y bin por separado.
Además, tenía una pregunta ... ¿por qué se necesita mucho tiempo para actualizar el icono de estado? A veces se vuelve muy confuso.
Consulte Mercurial .hgignore for Visual Studio 2008 projects para obtener una lista de omisiones de Mercurial. No estoy familiarizado con la sintaxis de la lista de ignorar SVN, pero este hilo tiene algunas buenas listas de qué ignorar en Visual Studio.
- 1. ¿Mejores prácticas usando Git con Visual Studio?
- 2. Mejores prácticas para organizar una solución de Visual Studio
- 3. Mejores prácticas para soluciones grandes en Visual Studio (2008)
- 4. Mejores prácticas para firmar ensamblajes con múltiples proyectos y desarrolladores
- 5. ¿Mejores prácticas para almacenar un sitio web ASP.NET en Subversion?
- 6. Mejores prácticas para configurar un proyecto de Visual Studio para pruebas nUnit
- 7. Mejores prácticas para Xcode + Git para proyectos de varios desarrolladores
- 8. Mejores prácticas de IoC en proyectos grandes
- 9. Mejores prácticas si su compilación demora demasiado en Visual Studio
- 10. Mejores prácticas para control de fuente y corrección de errores
- 11. Uso de Visual Studio para proyectos de código abierto (gestión de proyectos y cuestiones legales)
- 12. Mejores prácticas para la organización de proyectos con ASP.NET MVC
- 13. Mejores prácticas para repositorios git en proyectos de código abierto
- 14. ¿Cuáles son sus mejores prácticas para los proyectos de backbone.js?
- 15. Mejores prácticas para el control de versiones con proyectos múltiples
- 16. Mejores prácticas para el formato de código en proyectos grandes
- 17. Prácticas estándar para Subversion
- 18. ¿La mejor manera de estructurar un repositorio en Subversion para proyectos de Visual Studio?
- 19. Mejores prácticas para la depuración
- 20. Mejores prácticas de Sitecore
- 21. subversion/cruise control/nant/nunit con visual studio proyectos y soluciones
- 22. .hgignore Mercurial para proyectos Studio 2010 Visual
- 23. Comparta un archivo CS con 2 proyectos diferentes usando Visual Studio 2010 y Subversion
- 24. ¿Mejores prácticas para firmar ensamblados .NET?
- 25. Mejores prácticas para diseñar atajos de teclado
- 26. Guía para principiantes para aprender a usar Subversion con Visual Studio
- 27. Mejores prácticas para C#
- 28. Sucursal de TFS 2010 en proyectos de equipo: mejores prácticas
- 29. Mejores prácticas para SQLite DB y ContentProvider
- 30. mejores prácticas para administrar y cargar propiedades
Esto es VS2010 C#. Hay algunas diferencias entre esto y VS2010 C++, por ejemplo. Dale la etiqueta C#. – Bitterblue