Pergunta

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

Eu desenvolvo principalmente por conta própria, apenas ocasionalmente clone o repositório para outra pessoa trabalhar nele.

Estou pensando em pastas obj, arquivos .suo, .sln, .user etc.Eles podem simplesmente ser incluídos ou há arquivos que eu não deveria incluir?

Obrigado!

p.s.:no momento eu faço o seguinte:ignore todos os arquivos .pdb e todas as pastas obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/
Foi útil?

Solução

Aqui está meu arquivo .hgignore padrão para uso com o VS2008 que foi originalmente modificado a partir de um arquivo ignorado 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

Outras dicas

Isso é específico para um projeto C#, mas ignoro estes 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 deletar coisas que você acha que não são necessárias.Continue tentando construir e, enquanto você conseguir construir com sucesso, continue excluindo.Se você excluir muito, copie-o da pasta de origem.

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

Sinto-me excluído da conversa.Aqui está meu arquivo .hgignore.Ele cobre o desenvolvimento em C#, C++ e Visual Studio em geral, incluindo material COM (bibliotecas de tipos), alguns arquivos finais do construtor, CodeRush, ReSharper e atualizações de projetos do Visual Studio.Ele também ignora algumas coisas para o desenvolvimento web moderno (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*.*

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

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

Algumas notas:

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

Conteúdo do meu arquivo Mercurial .hgignore:

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

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

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

alguns outros que uso:

output
PrecompiledWeb
_UpgradeReport_Files

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

Aqui estão alguns incômodos:Salvamentos automáticos Matlab e Excel/Office.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Se eu acidentalmente adicioná-los e fechar o arquivo real que estava aberto, o Excel e/ou Matlab excluirão o salvamento automático e o Mercurial ficará sem saber para onde eles foram.Tenho certeza de que existem outros programas que fazem coisas semelhantes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top