Melhor padrão geral de ignorar SVN?


175

Qual é o melhor (ou tão bom quanto possível) padrão de ignorar SVN geral a ser usado?

Existem vários arquivos específicos do IDE, editor, compilador, plug-in, plataforma, etc., e alguns tipos de arquivos que se "sobrepõem" (isto é, 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 incluir automaticamente no controle de origem, 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 adicionassem os poucos itens específicos do ambiente de que precisam. Pode ser adaptado para outros sistemas de controle de versão (VCS) também.


Olá Zach, eu tenho lido este post seu: zachburlingame.com/2011/03/… e eu tenho algumas perguntas .. Existe uma maneira de contatá-lo com isso? Obrigado pelo seu tempo ... PS: Não foi possível encontrar qualquer outra forma de alcançá-lo senão por este comentário aqui, desculpe o incômodo
Brams

Respostas:


193

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

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

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 Liberação .CVS .cvs Liberar depuração Depurar ignorar Ignorar bin Obj. Bin Obj * .csproj.user * .user * .generated.cs

Formatado para facilitar a leitura:

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

5
E quanto a * .tmp * .temp?
Bob King

3
Além disso, se você fizer WPF * .g.vb * .g.cs * .baml * .GenerateResource.Cache * .cache
Bob King

6
é * .dll necessário, pois pode ser que os assemblies de referência precisem ser confirmados também no repositório?
perfil completo de Jaroslav Urban

6
@Xabatcha - Você sempre pode incluir explicitamente um arquivo de qualquer extensão (ou pasta), independentemente de estar ou não listado no padrão global de ignorados. Geralmente, você não deseja que o * .dll seja rastreado pelo SVN, no entanto, sempre é possível adicionar explicitamente todos os necessários (o que geralmente faço no caso de montagens de terceiros).
Zach Burlingame

2
Se você estiver usando ReSharper o suplemento que também
autonomatt

44

Com base no padrão de ignorância de Burly, adicionei o 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 facilitar a leitura:

*.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
Eu uso isso apenas também com:. _ReSharper *
Dve

1
Observe que o comentário de Dve foi incorporado no padrão acima. Você não precisa adicioná-lo novamente.
Hydrargyrum 11/12/12

34

Meu padrão de ignorados para o 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 a saída TestResults * .crunchsolution . * * .crunchproject. *

Formatado para facilitar a leitura

* / 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 a saída TestResults 
* .crunchsolution. * * .crunchproject. *

16

Toda vez que encontro um arquivo que geralmente não desejo no repositório, atualizo o padrão. Acredito que não existe um "melhor" padrão - ele sempre depende do idioma e do ambiente em que você se desenvolve.

Além disso, é pouco provável que você pense em todos os tipos de arquivos "ignoráveis" possíveis - sempre encontrará um tipo de arquivo que simplesmente se esqueceu de incluir. É por isso que atualizar o padrão à medida que funciona funciona melhor.


2
Concordo que não existe um "melhor" padrão no sentido absoluto, e por isso acrescentei o (ou o melhor possível). Você está correto, não enumerará todos eles e isso depende do lang & env, que também afirmei. No entanto, há um grande número que você pode derrubar imediatamente.
Zach Burlingame

1
Além disso, ao adicioná-los à medida que você trabalha, tudo bem para ambientes de desenvolvedor único, quando você tem vários desenvolvedores em um projeto, é desejável ter um padrão de ignorar um projeto comum. Você deseja atualizá-lo com a menor frequência possível, para eliminar o máximo possível de antemão
Zach Burlingame

Obviamente, o padrão usual de * .bin * .bak * .pdb * .suo etc etc deve ser definido com antecedência, eu concordo. Mas depois que você define as propriedades ignorar em uma pasta do repositório, elas se tornam efetivamente compartilhadas - embora eu saiba que não foi exatamente isso que você quis dizer.
petr k.

11

Os usuários do Windows podem querer usar o desktop.ini e o thumbs.db.


4

Usado para meus projetos do Visual Studio

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

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


Vi uma lista semelhante hoje cedo - qual é a diferença entre * / bin e apenas bin? Supondo que você queira ignorar a pasta inteira.
harpo 17/09/08

Leia a seção 5.13. Ignorando arquivos e diretórios do arquivo de ajuda do TortoiseSVN.
icelava 18/09/08

5
tortoisesvn.net/docs/release/TortoiseSVN_en/... Não diz que você não deve incluir um / ou \, e que incluí-los é um legado de versões anteriores
Simon D

@ Simon, não está dizendo (na inserção "Nenhum caminho na lista svn:ignoreglobal de ignorados ") que os caminhos são aceitáveis , mas não na lista global de ignorados?
Matthew Flaschen 12/10

3

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


1

Os usuários de Mac provavelmente desejam usar o .DS_Store. Além disso, se houver desenvolvedores usando Emacs ou Vim, você provavelmente desejará adicionar ~ ~ e # #.


1

Para o Eclipse, eu uso:

bin
.*

. * obtém toda a configuração do projeto. Você quase nunca deseja fazer check-in em um diretório ou arquivo 'oculto', mas se aparecer, você ainda pode adicioná-lo.


obj também é necessário, bem como arquivos .user *
jrojo

1

Como você pode estar usando bibliotecas e dlls de terceiros como parte do (s) projeto (s), não vejo a prudência em bloquear * .lib e * .dll do repositório. Essas são as coisas que devem ser armazenadas no repositório.


5
Ao usar libs, dlls, exes, etc. de terceiros, adicione-os explicitamente. Se você deseja fazer uma árvore inteira de terceiros, desative temporariamente o padrão de ignorar. Você não deseja que esses tipos sejam escolhidos implicitamente durante o desenvolvimento do dia a dia, portanto, a inclusão deles no padrão.
Zach Burlingame

1

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


0

O padrão depende do sistema operacional que você está usando.

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

No Windows, você desejará **. Obj *, **. Lib * e **. Dll * no mínimo.

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


0

Tem que adicionar o Resharper à mistura se você usar um.

outro a ser observado é Ankh *. *


Sim, deixei de fora a maioria dos sinalizadores específicos da ferramenta, exceto o Visual Studio. Espero que outros continuem adicionando respostas com listas explícitas de padrões de arquivos para suas várias ferramentas!
Zach Burlingame



0

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, solicitar 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

0

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, solicitar 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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.