2009-02-25 21 views
67

estoy apoyando un número de desarrolladores .Net que están utilizando Subversion a la versión controlar su trabajo, pero que han estado funcionando en una serie de cuestiones que parecen girar en torno a los archivos adicionales que Visual Studio utiliza para gestionar proyectos, realizar la depuración, Específicamente, parece que estos archivos están causando conflictos debido a que ya están en el repositorio. Sé cómo sacarlos y cómo manejarlos, pero necesito saber qué "ellos" son los primeros.¿Qué archivos de Visual Studio deben ser ignorados por subversión para minimizar los conflictos?

Así que, ¿cuáles son los archivos/directorios que Subversion puede ignorar, y por qué pueden ser ignorados? (Aka. ¿Qué hacen esos archivos?)

Esta es una gran ASP.Net, bastante ONU-organizada el sitio y la implementación del sitio se realiza a través de. svn updates, por lo que los archivos que necesita IIS para compilar dinámicamente (creo que eso es lo que es) el sitio ya que los archivos cambian debe dejarse en el repositorio.

+0

Si usó un complemento VS para VS integrado con SVN, entonces el propio VS solo agregaría los archivos que necesitaba a SVN. Como tal, filtraría los archivos que no necesitan ser controlados por la versión. – jussij

+1

@jussij - He encontrado que los clientes VS-SVN integrados son significativamente inferiores a los de los clientes SVN independientes, por lo que hice la pregunta :) – cdeszaq

+0

No estoy seguro de qué complementos tienes intentado, pero como el autor de uno de esos plug-ins VS (que está basado en MS-SCCI) me parece que puede hacer que trabajar con SVN sea más fácil. ¿Por qué? Porque el IDE controla qué archivos se colocan en el repositorio. Además, agregar, quitar o mover archivos se puede hacer desde dentro del IDE. Finalmente, el IDE proporciona comentarios visuales sobre el estado de los archivos (es decir, archivo no agregado, archivo desactualizado, etc.). – jussij

Respuesta

79
  • bin y obj directorios
  • * archivos .user (MyProject.csproj.user)
  • * .suo archivos

Además, si está utilizando el directorio .vs Visual Studio 2015 .

+0

@plntxt Supongo que actualmente la carpeta de paquetes debe ser parte de esta lista, a menos que haya algún matiz que no esté teniendo en cuenta. – wode

1

Probablemente diría que nada en el directorio bin.

3

AnkhSVN hace un gran trabajo de tan sólo comprobar en los archivos que son necesarios para el proyecto.

+1

¿Tienen una lista en algún lugar? – cdeszaq

+0

AnkhSVN 2.0 no usa una lista de qué ignorar. El proyecto proporciona una lista de lo que se debe agregar a su proveedor de SCC, en este caso AnkhSVN. Y AnkhSVN solo sugiere agregar estos archivos. (Un usuario puede anular esta configuración, pero normalmente no debería) –

6
  • 'bin' es un buen comienzo (como @Kevin dice).
  • Haría bien en ignorar el directorio 'obj' también.
  • * .suo y * .user sería mejor dejarlo fuera del control de la fuente.
  • * .VisualState.xml va a ser una elección personal también.
  • TestResults.xml (si está usando NUnit)
8
  • * .bin
  • * .obj
  • * .exe
  • * .dll
  • * .pch
  • * .user
  • * .suo
  • * .tlb
  • Resultado de la pruebas (prueba de la unidad de directorio VSTS)
1

Además de las personas han sugerido anteriormente, con frecuencia tengo que ignorar * .cache porque por alguna razón no sé ReSharper le gusta poner su archivos .cache en las mismas carpetas que el código en el que trabajo. Además, no creo que nadie haya mencionado * .pdb todavía.

44

he tenido buena suerte con este patrón ignorar mundial:

*bin *obj *suo *.user *.tmp *.TMP 
*resharper* *Resharper* *ReSharper* *.Load *.gpState 
Thumbs.db *.~m2

estoy corriendo el plug-in ReSharper, lo que probablemente puede ignorar eso. ". ~ m2" es para un archivo temporal que crea mi modelador de datos.

Actualización: Gracias por la votación. Recientemente agregué Mac, Dreamweaver, Python y algunos archivos más de Visual Studio que deberían ignorarse.

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp 
*[Bb]in *obj *suo *resharp* *.user *.tmp *.TMP *Resharper* 
*ReSharper* *.Load *.gpState *.NoLoad *.~m2 *.dbmdl _notes *.cache 
[Tt]est[Rr]esult [Bb]uild[Ll]og.* *.[Pp]ublish.xml *.[Cc]ache [Tt]humbs.db lint.db 
*.docstates .apdisk [Ll]ogs .DS_Store *.bak *.vs 

Otra cosa, si alguien comprueba accidentalmente en una carpeta o archivo que debe ser ignorado, entonces usted tendrá que quitar manualmente los archivos desde el repositorio SVN antes comenzará haciendo caso omiso de ellos de nuevo. Esto se debe a que los archivos que ya están en el repositorio anularán cualquier configuración de ignorar.

+1

parece que * .gpState se agrega dos veces. – superjos

+9

En mi opinión, los ignoramientos globales no son el camino a seguir. Lo que ocurre con esto es que la siguiente persona que revise su proyecto verá un grupo de archivos que parecen no versionados y pueden accidentalmente comprometerlos. Usar la propiedad svn-ignore es mejor porque cualquiera que use el proyecto en el futuro no puede cometer un error porque sus ignorados ya están configurados. – jjathman

6

creo que una mejor pregunta sería " ¿Qué archivos debo añadir a la subversión?"

La integración de Subversion AnkhSVN 2.0 pide exactamente esta pregunta a todos los proyectos de su solución. (Esta pregunta es una de las partes clave de la especificación SCC). Entonces solo sugerirá agregar estos archivos.

Como usuario puede agregar otros archivos manualmente (o marcar algunos de los archivos sugeridos como ignorados), pero este comportamiento hace que sea muy fácil hacer lo correcto.

La mayoría de los otros clientes de subversión no tienen el lujo de hablar con un sistema que realmente entiende lo que debe y no debe ser agregado. (Por ejemplo, clientes externos como TortoiseSVN y sus interfaces pueden adivinar basándose en las extensiones de archivos).

+0

Entonces, ¿hay alguna manera de determinar esto desde fuera de Visual Studio? Ankh no satisface todas nuestras necesidades, y por alguna razón no funciona bien con la forma en que estructuramos las cosas, por lo que no podemos confiar en que lo haga. – cdeszaq

+0

La única forma de hablar con los proyectos de VS como un proveedor de SCC es 'como un proveedor de SCC' ... y eso solo se puede hacer desde dentro de VS ... Si tiene casos de uso específicos que no maneja AnkhSVN, debe informarnos sobre la lista de usuarios de ankhsvn (o página de usuario). De lo contrario, no hay mucho que podamos arreglar :) –

4

Aquí es mi TortoiseSVN global de ignorado:

*.suo *.resharper *.sln bin obj *.user *.suo Debug Release *.pdb test.* _ReSharper*.* *.scc *.vssscc *.vspscc 

Los últimos 3 ayuda cuando la transición de Microsoft Visual SourceSafe.

1

Tampoco compruebe en el archivo .SDF. Es grande y Visual Studio lo volverá a crear si falta. Es una base de datos utilizada para Intellisense hasta donde yo sé.

6

Tema viejo, pero quiero agregar que podría usar el ejemplo de gitignore de GitHub, encontrado here, para un buen punto de partida.

## Ignore Visual Studio temporary files, build results, and 
## files generated by popular Visual Studio add-ons. 
## 
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 

# User-specific files 
*.suo 
*.user 
*.userosscache 
*.sln.docstates 
*.vcxproj.filters 

# User-specific files (MonoDevelop/Xamarin Studio) 
*.userprefs 

# Build results 
[Dd]ebug/ 
[Dd]ebugPublic/ 
[Rr]elease/ 
[Rr]eleases/ 
x64/ 
x86/ 
bld/ 
[Bb]in/ 
[Oo]bj/ 
[Ll]og/ 

# Visual Studio 2015 cache/options directory 
.vs/ 
# Uncomment if you have tasks that create the project's static files in wwwroot 
#wwwroot/ 

# MSTest test Results 
[Tt]est[Rr]esult*/ 
[Bb]uild[Ll]og.* 

# NUNIT 
*.VisualState.xml 
TestResult.xml 

# Build Results of an ATL Project 
[Dd]ebugPS/ 
[Rr]eleasePS/ 
dlldata.c 

# DNX 
project.lock.json 
project.fragment.lock.json 
artifacts/ 
**/Properties/launchSettings.json 

*_i.c 
*_p.c 
*_i.h 
*.ilk 
*.meta 
*.obj 
*.pch 
*.pdb 
*.pgc 
*.pgd 
*.rsp 
*.sbr 
*.tlb 
*.tli 
*.tlh 
*.tmp 
*.tmp_proj 
*.log 
*.vspscc 
*.vssscc 
.builds 
*.pidb 
*.svclog 
*.scc 

# Chutzpah Test files 
_Chutzpah* 

# Visual C++ cache files 
ipch/ 
*.aps 
*.ncb 
*.opendb 
*.opensdf 
*.sdf 
*.cachefile 
*.VC.db 
*.VC.VC.opendb 

# Visual Studio profiler 
*.psess 
*.vsp 
*.vspx 
*.sap 

# TFS 2012 Local Workspace 
$tf/ 

# Guidance Automation Toolkit 
*.gpState 

# ReSharper is a .NET coding add-in 
_ReSharper*/ 
*.[Rr]e[Ss]harper 
*.DotSettings.user 

# JustCode is a .NET coding add-in 
.JustCode 

# TeamCity is a build add-in 
_TeamCity* 

# DotCover is a Code Coverage Tool 
*.dotCover 

# Visual Studio code coverage results 
*.coverage 
*.coveragexml 

# NCrunch 
_NCrunch_* 
.*crunch*.local.xml 
nCrunchTemp_* 

# MightyMoose 
*.mm.* 
AutoTest.Net/ 

# Web workbench (sass) 
.sass-cache/ 

# Installshield output folder 
[Ee]xpress/ 

# DocProject is a documentation generator add-in 
DocProject/buildhelp/ 
DocProject/Help/*.HxT 
DocProject/Help/*.HxC 
DocProject/Help/*.hhc 
DocProject/Help/*.hhk 
DocProject/Help/*.hhp 
DocProject/Help/Html2 
DocProject/Help/html 

# Click-Once directory 
publish/ 

# Publish Web Output 
*.[Pp]ublish.xml 
*.azurePubxml 
# TODO: Comment the next line if you want to checkin your web deploy settings 
# but database connection strings (with potential passwords) will be unencrypted 
*.pubxml 
*.publishproj 

# Microsoft Azure Web App publish settings. Comment the next line if you want to 
# checkin your Azure Web App publish settings, but sensitive information contained 
# in these scripts will be unencrypted 
PublishScripts/ 

# NuGet Packages 
*.nupkg 
# The packages folder can be ignored because of Package Restore 
**/packages/* 
# except build/, which is used as an MSBuild target. 
!**/packages/build/ 
# Uncomment if necessary however generally it will be regenerated when needed 
#!**/packages/repositories.config 
# NuGet v3's project.json files produces more ignoreable files 
*.nuget.props 
*.nuget.targets 

# Microsoft Azure Build Output 
csx/ 
*.build.csdef 

# Microsoft Azure Emulator 
ecf/ 
rcf/ 

# Windows Store app package directories and files 
AppPackages/ 
BundleArtifacts/ 
Package.StoreAssociation.xml 
_pkginfo.txt 

# Visual Studio cache files 
# files ending in .cache can be ignored 
*.[Cc]ache 
# but keep track of directories ending in .cache 
!*.[Cc]ache/ 

# Others 
ClientBin/ 
~$* 
*~ 
*.dbmdl 
*.dbproj.schemaview 
*.jfm 
*.pfx 
*.publishsettings 
node_modules/ 
orleans.codegen.cs 

# Since there are multiple workflows, uncomment next line to ignore bower_components 
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 
#bower_components/ 

# RIA/Silverlight projects 
Generated_Code/ 

# Backup & report files from converting an old project file 
# to a newer Visual Studio version. Backup files are not needed, 
# because we have git ;-) 
_UpgradeReport_Files/ 
Backup*/ 
UpgradeLog*.XML 
UpgradeLog*.htm 

# SQL Server files 
*.mdf 
*.ldf 

# Business Intelligence projects 
*.rdl.data 
*.bim.layout 
*.bim_*.settings 

# Microsoft Fakes 
FakesAssemblies/ 

# GhostDoc plugin setting file 
*.GhostDoc.xml 

# Node.js Tools for Visual Studio 
.ntvs_analysis.dat 

# Visual Studio 6 build log 
*.plg 

# Visual Studio 6 workspace options file 
*.opt 

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 
*.vbw 

# Visual Studio LightSwitch build output 
**/*.HTMLClient/GeneratedArtifacts 
**/*.DesktopClient/GeneratedArtifacts 
**/*.DesktopClient/ModelManifest.xml 
**/*.Server/GeneratedArtifacts 
**/*.Server/ModelManifest.xml 
_Pvt_Extensions 

# Paket dependency manager 
.paket/paket.exe 
paket-files/ 

# FAKE - F# Make 
.fake/ 

# JetBrains Rider 
.idea/ 
*.sln.iml 

# CodeRush 
.cr/ 

# Python Tools for Visual Studio (PTVS) 
__pycache__/ 
*.pyc 

# Cake - Uncomment if you are using it 
# tools/ 
Cuestiones relacionadas