c# - remarks - Mejores prácticas para proyectos de Subversion y Visual Studio
visual studio summary shortcut (7)
En caso de que esté utilizando la lista de ignorar, SVN distingue 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 ícono de estado? A veces se vuelve muy confuso.
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, que se creó a partir de un conjunto de varios programas y scripts 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.
Incluiría manualmente todos los archivos que creo que no debería controlar la versión.
Mi patrón de ignorar global es:
.dll .pdb .exe .cache .webinfo .snk bin obj debug _Resharper .user resharper
Nivel de solución:
- agregue el
.sln
solución.sln
- ignorar el archivo de opciones de usuario de la solución
.suo
Nivel del proyecto:
- agregar los
.csproj
,.vbproj
(y c ++ proj?) - ignorar los archivos
.csproj.user
,.vbproj.user
- ignorar el directorio
bin
- ignorar el directorio
obj
- ignorar cualquier archivo / directorio que se genere durante el tiempo de ejecución (es decir, registros)
Si usa complementos VS, pueden generar archivos que también necesitan ignorar (es decir, ReSharper genera archivos .resharper
y .resharper.user
).
Los elementos de ignorar pueden ser ignorados 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 configurado su ignorar, revisando una copia limpia de su fuente, la compilación no debe mostrar modificaciones (es decir, no hay nuevos archivos no versionados).
Pon los siguientes archivos en control de versión:
- .dsw (espacio de trabajo VS6)
- .dsp (proyecto VS6)
- .sln (VS Solution)
- . * proj (archivos VS Project de varios tipos)
- por supuesto, sus archivos de origen y otros artefactos que crea
No ponga los siguientes archivos en el control de la versión:
- .ncb (algo relacionado con la navegación o intelsense)
- .suo (configuración del espacio de trabajo del usuario, como colocación de ventanas, etc., creo)
- .user (configuración de proyecto de usuario como puntos de interrupción, etc., creo)
Además, no coloque ningún archivo de objeto, ejecutable o autogenerado (como los encabezados que podrían generarse).
En cuanto a los archivos ejecutables y otros archivos generados, puede haber una excepción si desea poder archivarlos. 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 Herramientas de depuración para Windows para el servidor de símbolos y su documentación).
Aquí está mi lista de archivos específicos de VS que excluyo de SVN:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
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.
Ver Mercurial .hgignore para proyectos de Visual Studio 2008 para una lista de ignorar 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.
Puede agregar los siguientes archivos al control de fuente de Visual Studio:
- Archivos de solución (
*.sln
).- Archivos de proyecto, por ejemplo,
*.csproj
,*.vbproj
.- Archivos de configuración de aplicaciones, basados en XML, utilizados para controlar el comportamiento en tiempo de ejecución de un proyecto de Visual Studio.
Los archivos que no puede agregar al control de fuente incluyen lo siguiente:
- Archivos de opciones de usuario de solución (
*.suo
).- Archivos de opción de usuario del proyecto, por ejemplo,
*.csproj.user
,*.vbproj.user
.- Archivos de información web, por ejemplo,
*.csproj.webinfo
,*.vbproj.webinfo
, que controlan la ubicación raíz virtual de un proyecto web.- Cree archivos de salida, por ejemplo, archivos
*.dll
y*.exe
.