Mercurial .hgignore para projetos do Visual Studio 2008


164

Qual é uma boa configuração para o arquivo .hgignore ao trabalhar com o Visual Studio 2008?

Desenvolvo principalmente por conta própria, apenas ocasionalmente clono o repositório para que outra pessoa trabalhe nele.

Estou pensando em pastas obj, .suo, .sln, arquivos de usuário etc. Eles podem apenas ser incluídos ou existem arquivos que não devo incluir?

Obrigado!

ps: no momento, faço o seguinte: ignore todos os arquivos .pdb e todas as pastas obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/

6
Nota lateral: Eu acho que os arquivos .sln não devem ser excluídos do controle de origem
Slavo

2
Slavo, você está correto. Os arquivos de solução (.sln) contêm a estrutura de seus projetos, portanto, você deseja incluí-los em seu repositório.
Mesmo Mien

Respostas:


208

Aqui está o meu arquivo .hgignore padrão para uso com o VS2008 que foi originalmente modificado a partir de um arquivo de ignorância do Git:

# Ignore file for Visual Studio 2008

# use glob syntax
syntax: glob

# Ignore Visual Studio 2008 files
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml

4
Não, mas eles têm o mesmo conceito de arquivo ignorado.
Mesmo Mien

2
A linha [Db] ebug * / - suponho que deva ser um minúsculo d e não minúsculo b, usei essa lista de ignorados como modelo e levei um minuto para descobrir por que diabos uma pasta "depuração" não estava ' t sendo ignorado :) Obrigado pelo ótimo arquivo ignorar.
Nate Pinchot

4
Eu estava procurando pelo código de ignição que Rob Connery usou em seu vídeo Mercurial for Codeplex Tekpub e ele correspondia exatamente a esse. Bom trabalho!
Ben McCormack

1
Para mim, isso significou que um arquivo chamado Debug.Something.dll.config foi ignorado, então acho que o / no [Dd] ebug * / à direita não tem o efeito desejado. Talvez para janelas deva ser [Dd] ebug * \?
Rory

2
Para mim, isso significou que um arquivo chamado Debug.Something.dll.config foi ignorado, então acho que o / no [Dd] ebug * / à direita não tem o efeito desejado. Eu acho que o problema é com a sintaxe glob-style não correspondendo corretamente nos diretórios. Se você tirar as linhas de depuração e versão e substituí-los por três novas linhas na parte inferior do arquivo: syntax: regexpe [Rr]elease.*/e [Dd]ebug.*/, em seguida, ele parece funcionar corretamente.
Rory

37

Isso é específico para um projeto C #, mas ignoro esses arquivos / diretórios:

  • *.csproj.user
  • /obj/*
  • /bin/*
  • *.ncb
  • *.suo

Não tenho problemas ao executar o código no depósito em outras máquinas depois de ignorar todos esses arquivos. A maneira mais fácil de descobrir o que você precisa manter é fazer uma cópia da pasta e começar a excluir as coisas que você acha que não são necessárias. Continue tentando criar e, desde que você possa criar com êxito, continue excluindo. Se você excluir demais, copie-o da pasta de origem.

No final, você terá um bom diretório cheio dos únicos arquivos que precisam ser confirmados.


5
Também ignoro arquivos * .config, pois minha equipe de desenvolvedores é executada em ambientes ligeiramente diferentes (instância local do banco de dados, servidor de email local etc.) Além disso, as senhas residem no web.config.
Ash Máquina

Eu sempre pensei que você precisava. Por isso, obrigado pela dica. Tivemos conflitos o tempo todo.
shmeeps 20/09/11

24

Eu me sinto deixado de fora da conversa. Aqui está o meu arquivo .hgignore. Ele abrange o desenvolvimento de C #, C ++ e Visual Studio em geral, incluindo material COM (bibliotecas de tipos), alguns arquivos finais do construtor, atualizações de projetos CodeRush, ReSharper e Visual Studio. Ele também tem algumas ignorações para o desenvolvimento da web moderna (c.2015).

syntax: glob

* - [Cc]opy
* - [Cc]opy/
* - [Cc]opy (?)/
* - [Cc]opy.*
* - [Cc]opy (?).*
**/.*
**/scss/*.css
*.*scc
*.FileListAbsolute.txt
*.aps
*.bak
*.bin
*.[Cc]ache
*.clw
*.css.map
*.eto
*.exe
*.fb6lck
*.fbl6
*.fbpInf
*.ilk
*.lib
*.log
*.ncb
*.nlb
*.nupkg
*.obj
*.old
*.orig
*.patch
*.pch
*.pdb
*.plg
*.[Pp]ublish.xml
*.rdl.data
*.sbr
*.scc
*.sig
*.sqlsuo
*.suo
*.svclog
*.tlb
*.tlh
*.tli
*.tmp
*.user
*.vshost.*
*.docstates
*DXCore.Solution
*_i.c
*_p.c
__MVC_BACKUP/
_[Rr]e[Ss]harper.*/
_UpgradeReport_Files/
Ankh.Load
Backup*
[Bb]in/
bower_components/
[Bb]uild/
CVS/
[Dd]ebug/
[Ee]xternal/
hgignore[.-]*
ignore[.-]*
lint.db
node_modules/
[Oo]bj/
[Pp]ackages/
PrecompiledWeb/
[Pp]ublished/
[Rr]elease/
svnignore[.-]*
[Tt]humbs.db
UpgradeLog*.*

+1, o seu está usando Debug /, assim que não ingore "Debug.something.cs"
Sebastian

11

Aqui está o conteúdo do meu .hgignore para projetos do C # Visual Studio:

syntax: glob
*.user
*.ncb
*.nlb
*.suo
*.aps
*.clw
*.pdb
*\Debug\*
*\Release\*

Algumas notas:

  1. Se você tiver "releases" personalizados além de "Debug" e "Release", pode ser necessário adicioná-los.
  2. Tenha cuidado ao editar manualmente o seu .hgignore. Se você cometer um erro de sintaxe, o hgtortoise não abrirá mais a caixa de diálogo de confirmação.

8

Meu conteúdo do arquivo .hgignore do Mercurial:

syntax: glob
#-- Files
*.bak.*
*.bak
thumbs.db

#-- Directories
App_Data/*
bin/
obj/
_ReSharper.*/
tmp/

#-- Microsoft Visual Studio specific
*.user
*.suo

#-- MonoDevelop specific
*.pidb
*.userprefs
*.usertasks

Lembre-se de que trabalho principalmente em projetos WinForms, ASP.NET MVC e Mobile usando o Microsoft Visual Studio e, ocasionalmente, o MonoDevelop. Dependendo do seu conjunto de ferramentas e tipos de projeto, você provavelmente encontrará outros arquivos que devem ser ignorados.

Eu tento manter a versão mais recente no CodePaste.NET em http://codepaste.net/zxov7i


4

alguns outros que eu uso:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch

3

Aqui estão alguns chatos: Matlab e Excel / Office salvamentos automáticos.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Se acidentalmente os adicionar e depois fechar o arquivo real que foi aberto, o Excel e / ou o Matlab excluirão o salvamento automático e o Mercurial ficará parado imaginando para onde foram. Tenho certeza de que existem outros programas que fazem coisas semelhantes.

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.