Melhor geral SVN Ignore Pattern?

Qual é o melhor (ou tão bom quanto possível) SVN geral ignorar padrão para usar?

Existem diversos arquivos específicos para IDE, editor, compilador, plug-in, plataforma, etc. e alguns tipos de arquivos que “se sobrepõem” (ou seja, desejáveis ​​para alguns tipos de projetos e não para outros).

No entanto, há um grande número de tipos de arquivos que você nunca deseja include no controle de origem automaticamente, independentemente das especificidades do seu ambiente de desenvolvimento.

A resposta a essa pergunta serviria como um bom ponto de partida para qualquer projeto – exigindo apenas que eles adicionem os poucos itens específicos do ambiente de que precisam. Poderia ser adaptado para outros sistemas de version control (VCS) também.

Vou adicionar meus próprios dois centavos a esta pergunta:

Eu uso o seguinte padrão de ignorar SVN com TortoiseSVN e Subversion CLI para projetos C ++, C # / VB.NET e PERL nativos nas plataformas Windows e Linux. Isso funciona bem para mim!

Formatado para copiar e colar:

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

Formatado para legibilidade:

 * .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 debugging Depurar
 ignorar Ignorar bin bin obj Obj
 * .csproj.user * .user
 * .generated.cs

Com base no padrão de ignorância do Burly, eu adicionei ReSharper à lista de ignorados

Formatado para copiar e colar:

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

Formatado para legibilidade:

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

Meu padrão de ignorar para o Visual Studio:

 * / bin * / obj * / Release * / Depuração * .suo * .err * .log *. obj * .bin * .dll * .exe * .LOG *. usuário * .pdb [tT] emp [tT] empPE Ankh.Load thumbs.db * .resharper * .vspscc * .vsssccc * .scc * / _ ReSharper * * / _ ReSharper. * Bin obj * .resharperoptions * .db * .bak * _ReSharper * * .snk registra a saída TestResults * .crunchsolution . * * .crunchproject. *

Formatado para legibilidade

 * / bin * / obj * / Release * / Depuração * .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 a saída TestResults 
 * .crunchsolution * * .crunchproject *

Toda vez que me deparo com um arquivo que geralmente não quero no repository, atualizo o padrão. Eu acredito que não há um padrão “melhor” – isso sempre depende da linguagem e do ambiente em que você se desenvolve.

Além disso, não é muito provável que você pense em todos os possíveis tipos de arquivos “ignoráveis” – você sempre encontrará um tipo de arquivo que simplesmente esqueceu de include. É por isso que atualizar o padrão conforme você vai funciona melhor.

Usuários do Windows podem querer usar desktop.ini e thumbs.db.

Usado para meus projetos do Visual Studio

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

Você pode expandir mais tipos de arquivos a partir daí.

Usuários do Visual Studio (VC ++) definitivamente precisam excluir os arquivos .ncb

Os usuários de Mac provavelmente querem lançar o .DS_Store. Além disso, se houver dev usando o Emacs ou o Vim, você provavelmente desejará adicionar ~ ~ e # #.

Para o Eclipse, eu uso:

 bin .* 

. * obtém toda a configuração do projeto. Você quase nunca quer verificar um diretório ou arquivo ‘oculto’, mas se ele aparecer, você ainda pode svn adicioná-lo.

Como você pode estar usando libs de terceiros e dll’s como parte do (s) projeto (s), então não vejo a sabedoria em bloquear * .lib e * .dll do repository. Estas são as coisas que devem ser armazenadas no repository.

Os usuários do Visual Studio 2010 devem adicionar o ipch (uma pasta que contém headers pré-compilados C ++) e *.sdf (arquivos enormes usados ​​pelo intellisense para qualquer tipo de projeto).

O padrão depende de qual sistema operacional você está usando.

No Linux, você vai querer bloquear **. O *, **. So *, **. A * e **. La * para começar. Você também pode querer bloquear ** ~ * (arquivo de backup de edição) e # * # (backup emacs de uma falha).

No Windows, você vai querer **. Obj *, **. Lib * e **. Dll * no mínimo.

Quaisquer outros arquivos que você precise bloquear dependem do seu IDE, editor e compilador.

Tenho que adicionar Resharper ao mix se você usar um.

outro para procurar é Ankh *. *

Não esqueça os arquivos temporários do NCrunch :

 *.crunchsolution.* *.crunchproject.* 

E core dumps (cygwin, linux)

 *.stackdump core.* 

O gitignore.io fornece padrões configuráveis ​​para o git. Eles fornecem uma lista legível, que você precisa reformatar para o SVN.

Por exemplo, solicitando MicrosoftOffice e Windows retorna

 # 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 

O gitignore.io fornece padrões configuráveis ​​para o git. Eles fornecem uma lista legível, que você precisa reformatar para o SVN.

Por exemplo, solicitando MicrosoftOffice e Windows retorna

 # 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 pode ser usado diretamente como svn:global-ignore