2008-08-29 27 views
164

Quelle est une bonne configuration pour le fichier .hgignore lorsque vous travaillez avec Visual Studio 2008?Mercurial .hgignore pour les projets Visual Studio 2008

Je développe principalement par moi-même, seulement parfois je clone le référentiel pour que quelqu'un d'autre travaille dessus.

Je pense à des dossiers obj, .suo, .sln, fichiers .user etc .. Peuvent-ils être inclus ou y at-il un fichier que je ne devrais pas inclure?

Merci!

p.s .: pour l'instant je fais ce qui suit: ignorer tous les fichiers .pdb et tous les dossiers obj.

# regexp syntax. 
syntax: glob 
*.pdb 

syntax: regexp 
/obj/ 
+6

Note de côté: Je pense que les fichiers .sln ne doivent pas être exclus du contrôle de la source – Slavo

+2

Slavo, vous avez raison. Les fichiers de solution (.sln) contiennent la structure de vos projets, vous devez donc les inclure dans votre référentiel. –

Répondre

209

Voici mon fichier standard .hgignore pour une utilisation avec VS2008 qui a été initialement modifié à partir d'un fichier ignorer 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 
+0

sont git et compatible mercurial ??? –

+4

Non, mais ils ont le même concept d'un fichier ignoré. –

+1

Sélectionner, clic-droit, copier. C'est une bonne liste. Merci! –

37

Ceci est spécifique à un projet C#, mais j'ignorer ces fichiers/répertoires:

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

Je n'ai pas de problèmes en cours d'exécution du code dans le dépôt sur d'autres machines après que j'ignorer tous ces fichiers. Le moyen le plus simple de savoir ce que vous devez conserver est de créer une copie du dossier et de commencer à supprimer les éléments qui ne vous semblent pas nécessaires. Continuez à essayer de construire, et aussi longtemps que vous pouvez construire avec succès continuer à supprimer. Si vous en supprimez trop, copiez-le à partir du dossier source. En fin de compte, vous aurez un bon répertoire rempli des seuls fichiers qui doivent être validés.

+5

J'ignore également les fichiers * .config, car mon équipe de développeurs fonctionne tous dans des environnements légèrement différents (instance db locale, serveur de messagerie local, etc.). Les mots de passe résident également dans le fichier web.config. –

+0

J'ai toujours pensé que vous aviez besoin de .suo pour cela, merci pour le conseil. Nous avons eu des conflits tout le temps là-dessus. – shmeeps

11

Voici le contenu de mon .hgignore pour projets C# Visual Studio:

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

Quelques notes:

  1. Si vous avez coutume "libère" en plus "Debug" et « Release ", vous devrez peut-être les ajouter.
  2. Faites attention lorsque vous éditez manuellement votre .hgignore. Si vous faites une erreur de syntaxe , alors hgtortoise ne sera plus plus ouvrir la boîte de dialogue de validation.
8

Mon Mercurial contenu du fichier .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 

Gardez à l'esprit Je travaille principalement sur des projets WinForms, ASP.NET MVC et Mobile en utilisant Microsoft Visual Studio et parfois MonoDevelop. En fonction de vos types d'outils et de projets, vous rencontrerez probablement d'autres fichiers qui devraient être ignorés.

J'essaie de garder la dernière version sur CodePaste.NET à http://codepaste.net/zxov7i

24

Je me sens à l'écart de la conversation. Voici mon fichier .hgignore. Il couvre le développement C#, C++ et Visual Studio en général, y compris les commandes COM (bibliothèques de types), certains fichiers de constructeur final, les mises à niveau de projet CodeRush, ReSharper et Visual Studio. Il a aussi des ignores pour le développement web moderne (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*.* 
+0

+1, le vôtre utilise Debug /, donc ne sera pas ingérer "Debug.something.cs" – Sebastian

4

quelques autres que j'utilise:

output 
PrecompiledWeb 
_UpgradeReport_Files 

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

Voici quelques les satanés: Matlab et Excel/Office de sauvegarde automatiquement.

# use glob syntax 
syntax: glob 

# Matlab ignore files 
*.asv 

# Microsoft Office 
~$* 

Si je les ajoute accidentellement puis fermez le fichier réel qui était ouvert, Excel et/ou Matlab supprimera la sauvegarde automatique et Mercurial sera coincé demander où ils sont allés. Je suis sûr qu'il y a d'autres programmes qui font des choses semblables.