¿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).

Zach Burlingame
fuente
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
Zach Burlingame
fuente
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
Tres séptimos
fuente
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. *
Lankymart
fuente
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.

petr k.
fuente
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.

harpo
fuente
4

Utilizado para mis proyectos de Visual Studio

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

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

icelava
fuente
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

Rob Walker
fuente
1

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

Jim Deville
fuente
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.

Noé
fuente
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.

graham.reeds
fuente
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).

Dalmas
fuente
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.

Branan
fuente
0

Tengo que agregar Resharper a la mezcla si usas uno.

otro a tener en cuenta es Ankh *. *

Hammad Rajjoub
fuente
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

No olvide los archivos temporales de NCrunch :

*.crunchsolution.* *.crunchproject.*
Richard Dingwall
fuente
0

Y volcados de núcleo (cygwin, linux)

*.stackdump core.*
Holger Bille
fuente
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
koppor
fuente
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

koppor
fuente