Mercurial .hgignore para proyectos de Visual Studio 2008

164

¿Cuál es una buena configuración para el archivo .hgignore cuando se trabaja con Visual Studio 2008?

Principalmente me desarrollo solo, solo ocasionalmente clono el repositorio para que alguien más trabaje en él.

Estoy pensando en carpetas obj, .suo, .sln, archivos .user, etc. ¿Se pueden incluir o hay archivos que no debería incluir?

¡Gracias!

ps: en este momento hago lo siguiente: ignorar todos los archivos .pdb y todas las carpetas obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/
Johannes
fuente
66
Nota al margen: creo que los archivos .sln no deberían excluirse del control de fuente
Slavo
2
Slavo, tienes razón. Los archivos de solución (.sln) contienen la estructura de sus proyectos, por lo que querrá incluirlos en su repositorio.
Incluso Mien

Respuestas:

208

Aquí está mi archivo .hgignore estándar para usar con VS2008 que fue modificado originalmente desde un archivo de ignorar Git:

# Ignore file for Visual Studio 2008

# use glob syntax
syntax: glob

# Ignore Visual Studio 2008 files
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
Incluso Mien
fuente
44
No, pero tienen el mismo concepto de un archivo de ignorar.
Incluso Mien
2
La línea [Db] ebug * / - Supongo que debería ser una minúscula d y no una minúscula b, usé esta lista de ignorados como plantilla y me tomó un minuto descubrir por qué demonios no estaba una carpeta de "depuración" t siendo ignorado :) Gracias por el gran archivo de ignorar.
Nate Pinchot
44
Estaba buscando el código de ignorar que Rob Connery usó en su video Mercurial para Codeplex Tekpub y coincidía con este exacto. ¡Gran trabajo!
Ben McCormack
1
Para mí, esto significaba que se ignoraba un archivo llamado Debug.Something.dll.config, así que creo que el seguimiento / en [Dd] ebug * / no tiene el efecto deseado. Quizás para Windows debería ser [Dd] ebug * \?
Rory
2
Para mí, esto significaba que se ignoraba un archivo llamado Debug.Something.dll.config, así que creo que el seguimiento / en [Dd] ebug * / no tiene el efecto deseado. Creo que el problema es que la sintaxis de estilo glob no coincide correctamente en los directorios. Si elimina las líneas de Depuración y Liberación y las reemplaza con tres líneas nuevas en la parte inferior del archivo: syntax: regexpy[Rr]elease.*/ y [Dd]ebug.*/entonces parece que funciona correctamente.
Rory
37

Esto es específico para un proyecto de C #, pero ignoro estos archivos / directorios:

  • *.csproj.user
  • /obj/*
  • /bin/*
  • *.ncb
  • *.suo

No tengo problemas para ejecutar el código en el almacén en otras máquinas después de ignorar todos estos archivos. La forma más fácil de averiguar lo que necesita conservar es hacer una copia de la carpeta y comenzar a eliminar las cosas que cree que no son necesarias. Siga intentando construir, y mientras pueda construir con éxito, siga eliminando. Si elimina demasiado, cópielo de la carpeta de origen.

Al final, tendrás un buen directorio lleno de los únicos archivos que deben confirmarse.

Daniel Jennings
fuente
55
También ignoro los archivos * .config, ya que mi equipo de desarrolladores se ejecuta en entornos ligeramente diferentes (instancia local de base de datos, servidor de correo electrónico local, etc.) Además, las contraseñas residen en web.config.
Ash Machine
Siempre pensé que necesitabas .suo para ello, gracias por la sugerencia. Tuvimos conflictos todo el tiempo sobre eso.
shmeeps
24

Me siento excluido de la conversación. Aquí está mi archivo .hgignore. Cubre el desarrollo de C #, C ++ y Visual Studio en general, incluyendo material COM (bibliotecas de tipos), algunos archivos finales de construcción, CodeRush, ReSharper y actualizaciones de proyectos de Visual Studio. También tiene algunas ignoraciones para el desarrollo web moderno (c.2015).

syntax: glob

* - [Cc]opy
* - [Cc]opy/
* - [Cc]opy (?)/
* - [Cc]opy.*
* - [Cc]opy (?).*
**/.*
**/scss/*.css
*.*scc
*.FileListAbsolute.txt
*.aps
*.bak
*.bin
*.[Cc]ache
*.clw
*.css.map
*.eto
*.exe
*.fb6lck
*.fbl6
*.fbpInf
*.ilk
*.lib
*.log
*.ncb
*.nlb
*.nupkg
*.obj
*.old
*.orig
*.patch
*.pch
*.pdb
*.plg
*.[Pp]ublish.xml
*.rdl.data
*.sbr
*.scc
*.sig
*.sqlsuo
*.suo
*.svclog
*.tlb
*.tlh
*.tli
*.tmp
*.user
*.vshost.*
*.docstates
*DXCore.Solution
*_i.c
*_p.c
__MVC_BACKUP/
_[Rr]e[Ss]harper.*/
_UpgradeReport_Files/
Ankh.Load
Backup*
[Bb]in/
bower_components/
[Bb]uild/
CVS/
[Dd]ebug/
[Ee]xternal/
hgignore[.-]*
ignore[.-]*
lint.db
node_modules/
[Oo]bj/
[Pp]ackages/
PrecompiledWeb/
[Pp]ublished/
[Rr]elease/
svnignore[.-]*
[Tt]humbs.db
UpgradeLog*.*
Damian Powell
fuente
+1, el tuyo está usando Debug /, por lo que no realizará "Debug.something.cs"
Sebastian
11

Aquí está el contenido de mi .hgignore para proyectos de C # Visual Studio:

syntax: glob
*.user
*.ncb
*.nlb
*.suo
*.aps
*.clw
*.pdb
*\Debug\*
*\Release\*

Algunas notas

  1. Si tiene "versiones" personalizadas además de "Debug" y "Release", es posible que deba agregarlas.
  2. Tenga cuidado cuando edite manualmente su .hgignore. Si comete un error de sintaxis, hgtortoise ya no abrirá el diálogo de confirmación.
jm.
fuente
8

Mi contenido del archivo Mercurial .hgignore:

syntax: glob
#-- Files
*.bak.*
*.bak
thumbs.db

#-- Directories
App_Data/*
bin/
obj/
_ReSharper.*/
tmp/

#-- Microsoft Visual Studio specific
*.user
*.suo

#-- MonoDevelop specific
*.pidb
*.userprefs
*.usertasks

Tenga en cuenta que principalmente trabajo en WinForms, ASP.NET MVC y proyectos móviles usando Microsoft Visual Studio y ocasionalmente MonoDevelop. Dependiendo de su conjunto de herramientas y tipos de proyecto, probablemente encontrará otros archivos que deben ignorarse.

Intento mantener la última versión en CodePaste.NET en http://codepaste.net/zxov7i

AlGonzalez
fuente
4

algunos otros que uso:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch
rohancragg
fuente
3

Aquí hay un par de molestos: Matlab y Excel / Office autoguardados.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Si accidentalmente los agrego y luego cierro el archivo real que estaba abierto, Excel y / o Matlab eliminarán el guardado automático y luego Mercurial se quedará atascado preguntándose a dónde fueron. Estoy seguro de que hay otros programas que hacen cosas similares.

Nathan Donnellan
fuente