tortoise subir repositorio proyecto ignorar eliminar desvincular con como carpeta borrar archivos archivo svn language-agnostic version-control development-environment environment

subir - ¿El mejor patrón general de ignorar SVN?



svn ignore file (17)

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

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

Sin embargo, hay una gran cantidad de tipos de archivos que nunca 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 sería 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).


Agregaré mis propios dos centavos a esta pregunta:

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

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 *.generated.cs

Formateado para legibilidad:

*.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


Basado en el patrón de ignorar de Burly, agregué ReSharper a la lista de ignorados

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 legibilidad:

*.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


Cada vez que encuentro un archivo que generalmente no quiero en el repositorio, actualizo el patrón. Creo que no existe 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 posibles tipos de archivos "ignorables": siempre encontrará un tipo de archivo que simplemente olvidó incluir. Es por eso que actualizar el patrón sobre la marcha funciona mejor.


Dado que puede estar usando libs y dll 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.


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 depende de su IDE, editor y compilador.


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


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


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


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


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 legibilidad

*/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.*


No te olvides de los archivos temporales de NCrunch :

*.crunchsolution.* *.crunchproject.*


Para Eclipse, uso:

bin .*

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


Tengo que agregar Resharper a la mezcla si usas uno.

otro a tener en cuenta es Ankh *. *


Utilizado para mis proyectos de Visual Studio

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

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


Y volcados del núcleo (cygwin, linux)

*.stackdump core.*


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

Por ejemplo, solicitando Microsoft Office y Windows devoluciones

# 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


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

Por ejemplo, solicitando Microsoft Office y Windows devoluciones

# 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