¿El mejor patrón general de ignorar SVN?


175

¿Cuál es el mejor patrón de ignorar SVN general (o lo mejor posible) para usar?

Existen varios archivos específicos de IDE, editor, compilador, complemento, plataforma, etc. y algunos tipos de archivos que se "superponen" (es decir, deseable para algunos tipos de proyectos y no para otros).

Sin embargo, hay una gran cantidad de tipos de archivos que simplemente no desea incluir automáticamente en el control de origen, independientemente de los detalles de su entorno de desarrollo.

La respuesta a esta pregunta serviría como un buen punto de partida para cualquier proyecto, solo requiere que agreguen los pocos elementos específicos del entorno que necesitan. También podría adaptarse para otros sistemas de control de versiones (VCS).


Hola Zach, he estado leyendo esta publicación tuya: zachburlingame.com/2011/03/… y tengo un par de preguntas ... ¿Hay alguna forma de contactarte con esto? Gracias por su tiempo ... PD: No pude encontrar otra manera de contactarlo, excepto a través de este comentario aquí, perdón por la molestia
Brams

Respuestas:


193

Agregaré mis dos centavos a esta pregunta:

Utilizo el siguiente patrón de ignorar SVN con TortoiseSVN y Subversion CLI para proyectos nativos de C ++, C # / VB.NET y PERL en plataformas Windows y Linux. ¡Funciona bien para mí!

Formateado para copiar y pegar:

* .o * .lo * .la # * #. *. rej * .rej. * ~ * ~. # * .DS_Store thumbs.db Thumbs.db * .bak * .class * .exe * .dll * .mine * .obj * .ncb * .lib * .log * .idb * .pdb * .ilk * .msi * .res * .pch * .suo * .exp *. * ~ *. ~ * ~ *. * CVS CVS .CVS .cvs release Liberar depuración Debug ignorar Ignorar bin Bin obj Obj * .csproj.user * .user * .generated.cs

Formateado para facilitar la lectura:

* .o * .lo * .la # * #. *. rej * .rej
. * ~ * ~. # * .DS_Store thumbs.db 
Thumbs.db * .bak * .class * .exe * .dll
* .mine * .obj * .ncb * .lib * .log 
* .idb * .pdb * .ilk * .msi * .res * .pch * .suo 
* .exp *. * ~ *. ~ * ~ *. * cvs CVS .CVS .cvs  
release Release debug Debug
ignorar Ignorar bin Bin obj Obj
* .csproj.user * .user
* .generated.cs

55
¿Qué pasa con * .tmp * .temp?
Bob King

3
Además, si hace WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King

66
¿Se requiere * .dll, ya que puede ser el caso cuando los ensamblados de referencia deben confirmarse también en el repositorio?
Jaroslav Urban el

66
@Xabatcha: siempre puede incluir explícitamente un archivo de cualquier extensión (o carpeta) independientemente de si está incluido en el patrón global de ignorar o no. En general, no desea que * .dll sea rastreado por SVN, sin embargo, siempre puede agregar explícitamente los necesarios (lo que a menudo hago en el caso de ensamblados de terceros).
Zach Burlingame

2
Si está utilizando ReSharper, agregue eso también
autonomatt

44

Basado en el patrón de ignorar de Burly, he agregado ReSharper a la lista de ignorar

Formateado para copiar y pegar:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user _ReSharper.* *.resharper.user

Formateado para facilitar la lectura:

*.o *.lo .la ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak
*.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp ~. cvs
CVS .CVS .cvs release Release debug
Debug ignore Ignore bin Bin obj Obj
*.csproj.user *.user _ReSharper.* *.resharper.user

1
Lo uso solo con: _ReSharper. *
Dve

1
Tenga en cuenta que el comentario de Dve se ha incorporado al patrón anterior. No necesita agregarlo nuevamente.
Hydrargyrum

34

Mi patrón de ignorar para Visual Studio:

* / bin * / obj * / Release * / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe * .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper * .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper. * Bin obj * .resharperoptions * .db * .bak * _ReSharper * * .snk registra la salida TestResults * .crunchsolution . * * .crunchproject. *

Formateado para facilitar la lectura

* / bin * / obj * / Release * / Debug * .suo * .err * .log * .obj * .bin * .dll * .exe 
* .LOG * .user * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper 
* .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper. * bin obj 
* .resharperoptions * .db * .bak * _ReSharper * * .snk registra la salida TestResults 
* .crunchsolution. * * .crunchproject. *

16

Cada vez que me encuentro con un archivo que generalmente no quiero en el repositorio, actualizo el patrón. Creo que no hay un "mejor" patrón: siempre depende del idioma y el entorno en el que se desarrolle.

Además, no es muy probable que piense en todos los tipos de archivo "ignorables" posibles: siempre encontrará un tipo de archivo que simplemente olvidó incluir. Es por eso que actualizar el patrón a medida que avanza funciona mejor.


2
Estoy de acuerdo en que no hay un "mejor" patrón en sentido absoluto, por lo que agregué el (o lo mejor posible). Estás en lo correcto, no los enumerarás a todos y depende de la lang & env, que también dije. Sin embargo, hay un gran número que puede eliminar de inmediato.
Zach Burlingame

1
Además, aunque agregarlos a medida que avanza funciona bien para entornos de desarrollador único, cuando tiene múltiples desarrolladores en un proyecto, es deseable tener un patrón común de ignorar proyectos. Desea tener que actualizarlo con la menor frecuencia posible, por lo que desea eliminar la mayor cantidad posible por adelantado
Zach Burlingame

Por supuesto, el patrón habitual de * .bin * .bak * .pdb * .suo, etc., etc. debe establecerse por adelantado, estoy de acuerdo. Pero una vez que establece las propiedades de ignorar en una carpeta de repositorio, se comparten de manera efectiva, aunque sé que esto no es exactamente lo que quería decir.
petr k.

11

Los usuarios de Windows pueden querer incluir desktop.ini y thumbs.db.


4

Utilizado para mis proyectos de Visual Studio

*/bin */obj *.user *.suo

Puede expandir más tipos de archivos desde allí.


Hoy vi una lista similar: ¿cuál es la diferencia entre * / bin y solo bin? Suponiendo que desea ignorar toda la carpeta.
harpo

Lea la sección 5.13. Ignorando archivos y directorios del archivo de ayuda TortoiseSVN.
icelava

55
tortoisesvn.net/docs/release/TortoiseSVN_en/… Ahí dice que no debe incluir un / o \, y que incluirlos es un legado de versiones anteriores
Simon D

@ Simon, ¿no está diciendo (en el recuadro "No hay rutas en la lista svn:ignoreglobal de ignorados ") que las rutas están bien , pero no en la lista global de ignorar?
Matthew Flaschen

3

Los usuarios de Visual Studio (VC ++) definitivamente deben excluir los archivos .ncb


1

Los usuarios de Mac probablemente quieran agregar .DS_Store. Además, si hay desarrolladores que usan Emacs o Vim, probablemente desee agregar ~ ~ y # #.


1

Para Eclipse, uso:

bin
.*

. * obtiene toda la configuración del proyecto. Casi nunca desea registrar un directorio o archivo 'oculto', pero si aparece, aún puede agregarlo.


obj también es necesario, así como archivos * .user
jrojo

1

Como puede estar usando libs y dll de terceros como parte de los proyectos, entonces no veo la sabiduría en bloquear * .lib y * .dll del repositorio. Estas son las cosas que deben almacenarse en el repositorio.


55
Cuando use libs, dlls, exes, etc. de terceros, simplemente agréguelos explícitamente. Si desea hacer un árbol de terceros completo, simplemente deshabilite temporalmente el patrón de ignorar. Sin embargo, no desea que estos tipos se recojan implícitamente durante el desarrollo diario, de ahí su inclusión en el patrón.
Zach Burlingame

1

Los usuarios de Visual Studio 2010 deben agregar ipch(una carpeta que contiene encabezados precompilados C ++) y *.sdf(archivos enormes utilizados por intellisense para cualquier tipo de proyecto).


0

El patrón depende del sistema operativo que esté utilizando.

En Linux, querrás bloquear **. O *, **. So *, **. A * y **. La * para empezar. También es posible que desee bloquear ** ~ * (copia de seguridad del archivo de edición) y # * # (copia de seguridad de emacs de un bloqueo).

En Windows, querrás **. Obj *, **. Lib * y **. Dll * como mínimo.

Cualquier otro archivo que necesite bloquear depende de su IDE, editor y compilador.


0

Tengo que agregar Resharper a la mezcla si usas uno.

otro a tener en cuenta es Ankh *. *


Sí, omití la mayoría de los indicadores específicos de la herramienta, excepto Visual Studio. ¡Ojalá otros continúen agregando respuestas con listas explícitas de patrones de archivos para sus diversas herramientas!
Zach Burlingame



0

gitignore.io proporciona patrones configurables para git. Proporcionan una lista legible, que debe formatear para SVN.

Por ejemplo, solicitar devoluciones de Microsoft Office y Windows

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

0

gitignore.io proporciona patrones configurables para git. Proporcionan una lista legible, que debe formatear para SVN.

Por ejemplo, solicitar devoluciones de Microsoft Office y Windows

# Created by https://www.gitignore.io/api/microsoftoffice,windows

### MicrosoftOffice ###
*.tmp

# Word temporary
~$*.doc*

# Excel temporary
~$*.xls*

# Excel Backup File
*.xlk

# PowerPoint temporary
~$*.ppt*

# Visio autosave temporary files
*.~vsdx


### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

Parece que se puede usar directamente como svn:global-ignore

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.