171

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

Existen varios archivos específicos de IDE, editor, compilador, plug-in, plataforma, etc. y algunos tipos de archivos "superpuestos" (es decir, deseables para algunos tipos de proyectos y no para otros).

Sin embargo, existe una gran cantidad de tipos de archivos que no desea que se incluyan en el control de fuente de forma automática, independientemente de las características específicas de su entorno de desarrollo.

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

+0

Hola Zach, he estado leyendo este post de los suyos: http: //www.zachburlingame. com/2011/03/installation-mercurial-and-hosting-repositories-with-centos/y tengo un par de preguntas. ¿Hay alguna manera de comunicarme con usted? Gracias por su tiempo ... P.S: No pude encontrar ninguna otra forma de comunicarme con usted, excepto a través de este comentario, disculpe la molestia – Brams

Respuesta

190

voy a añadir mis dos centavos a esta pregunta:

que utilice el siguiente patrón de SVN con TortoiseSVN y Subversion CLI para nativo de C++, C#/VB.NET proyectos, y Perl en Windows y Linux ignorar plataformas. ¡Me funciona bien!

con formato 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 *.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 
ignore Ignore bin Bin obj Obj 
*.csproj.user *.user 
*.generated.cs 
+0

@blorgbeard - Estoy reduciendo los cambios de formato porque creo que es preferible tenerlo todo en una línea para copiar/pegar en el archivo de configuración SVN (que no acepta entradas de varias líneas). –

+0

Ajustándolo. –

+5

¿Qué pasa con * .tmp * .temp? –

4

Usado para mi Visual Studio Projects

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

pueden ampliar más tipos de archivos desde allí.

+0

Vi una lista similar el día de hoy. ¿Cuál es la diferencia entre */bin y just bin?Suponiendo que quiere ignorar toda la carpeta. – harpo

+0

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

+5

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-ignore.html Allí dice que no debe incluir un/o \, y que incluirlos es un legado de versiones anteriores –

12

usuarios de Windows podrían querer tirar Desktop.ini y thumbs.db.

3

usuarios de Visual Studio (VC++) Sin duda hay que excluir la .ncb archivos

17

Cada vez que me encuentro con un archivo por lo general no quiero en el repositorio, puedo actualizar el patrón. Creo que no existe el "mejor" patrón: siempre depende del idioma y el entorno que desarrolle.

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

+2

Estoy de acuerdo en que no existe un "mejor" patrón en el sentido absoluto, por lo que agregué el (o tan bueno como sea posible). Tiene razón, no los enumerará a todos y depende de lang & env, que también mencioné. Sin embargo, hay un gran número que puedes eliminar inmediatamente. –

+1

Además, al agregarlos sobre la marcha funciona bien para entornos de desarrollador único, cuando tiene múltiples desarrolladores en un proyecto, es deseable tener un patrón de ignorar proyecto común. Desea tener que actualizarlo con la menor frecuencia posible, por lo que desea eliminar la mayor cantidad posible al frente –

+0

Por supuesto, el patrón habitual de * .bin * .bak * .pdb * .suo, etc. debe configurarse frente, estoy de acuerdo. Pero una vez que configura las propiedades de ignorar en una carpeta de repositorio, efectivamente se vuelven compartidas, aunque soy consciente de que esto no es exactamente lo que usted quiso decir. –

1

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

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 de la edición) y # * # (copia de seguridad de emacs desde una falla).

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

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

1

para Eclipse, utilizo:

bin 
.* 

* recibe toda la configuración del proyecto.. Casi nunca desea verificar un directorio o archivo "oculto", pero si aparece, todavía puede agregarlo.

+0

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

1

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

+5

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

44

Basado en el patrón de ignorar de Corpulento, he añadido ReSharper a la lista de ignorados

con formato 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 

con formato 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

uso esto solo también con: \ _ReSharper. \ * – Dve

+1

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

33

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 logs output 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 logs output TestResults 
*.crunchsolution.* *.crunchproject.* 
0

Tengo que añadir a la mezcla ReSharper si se utiliza uno.

otro a tener en cuenta es Ankh *. *

+0

Sí, dejé de lado la mayoría de los indicadores específicos de herramientas, excepto Visual Studio. Esperemos que otros continúen agregando respuestas con listas de patrones de archivos explícitos para sus diversas herramientas. –

1

Visual Studio 2010 usuarios deben añadir ipch (una carpeta que contiene los encabezados precompilados C++) y *.sdf (archivos de gran tamaño utilizado por IntelliSense para cualquier tipo de proyecto).

0

No se olvide NCrunch archivos temporales:

*.crunchsolution.* *.crunchproject.* 
0

Y volcados de memoria (cygwin, Linux)

*.stackdump core.* 
0

gitignore.io proporciona patrones configurables para Git. Proporcionan una lista legible, que necesita volver a formatear para SVN.

Por ejemplo requesting MicrosoftOffice and Windows, devuelve

# 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 necesita volver a formatear para SVN.

Por ejemplo, requesting MicrosoftOffice and Windows vuelve

# 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 utilizar directamente como svn:global-ignore

Cuestiones relacionadas