Mercurial .hgignore pour les projets Visual Studio 2008

164

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

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

Je pense aux dossiers obj, .suo, .sln, fichiers .user etc. Peuvent-ils simplement être inclus ou y a-t-il des fichiers que je ne devrais pas inclure?

Merci!

ps: pour le moment, je fais ce qui suit: ignorer tous les fichiers .pdb et tous les dossiers obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/
Johannes
la source
6
Note latérale: je pense que les fichiers .sln ne devraient pas être exclus du contrôle de code source
Slavo
2
Slavo, vous avez raison. Les fichiers de solution (.sln) contiennent la structure de vos projets, vous souhaiterez donc les inclure dans votre référentiel.
Even Mien

Réponses:

208

Voici mon fichier .hgignore standard à utiliser 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
Même Mien
la source
4
Non, mais ils ont le même concept de fichier ignoré.
Even Mien le
2
La ligne [Db] ebug * / - Je suppose que cela devrait être un d minuscule et non un b minuscule, a utilisé cette liste d'ignorés comme modèle et m'a pris une minute pour comprendre pourquoi diable un dossier "debug" n'était pas ' t étant ignoré :) Merci pour le grand fichier ignorer.
Nate Pinchot
4
Je cherchais le code ignorer que Rob Connery a utilisé dans sa vidéo Mercurial pour Codeplex Tekpub et il correspondait exactement à cela. Bon travail!
Ben McCormack
1
Pour moi, cela signifiait qu'un fichier appelé Debug.Something.dll.config était ignoré, donc je pense que le / on [Dd] ebug * / n'a pas l'effet désiré. Peut-être que pour Windows, cela devrait être [Dd] ebug * \?
Rory
2
Pour moi, cela signifiait qu'un fichier appelé Debug.Something.dll.config était ignoré, donc je pense que le / on [Dd] ebug * / n'a pas l'effet désiré. Je pense que le problème est que la syntaxe de style glob ne correspond pas correctement aux répertoires. Si vous prenez les lignes de débogage et de version et les remplacer par trois nouvelles lignes au bas du fichier: syntax: regexpet [Rr]elease.*/et [Dd]ebug.*/il semble fonctionner correctement.
Rory
37

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

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

Je n'ai aucun problème à exécuter le code dans le dépôt sur d'autres machines après avoir ignoré tous ces fichiers. Le moyen le plus simple de savoir ce que vous devez conserver est de faire une copie du dossier et de commencer à supprimer les éléments que vous jugez inutiles. Continuez à essayer de construire, et tant que vous pouvez construire avec succès, continuez à supprimer. Si vous en supprimez trop, copiez-le depuis le dossier source.

En fin de compte, vous aurez un joli répertoire rempli des seuls fichiers qui doivent être validés.

Daniel Jennings
la source
5
J'ignore également les fichiers * .config, car mon équipe de développeurs fonctionne tous dans des environnements légèrement différents (instance de base de données locale, serveur de messagerie local, etc.) De plus, les mots de passe résident dans le fichier web.config.
Ash Machine
J'ai toujours pensé que vous aviez besoin de .suo pour cela, merci pour le conseil. Nous avions des conflits tout le temps dessus.
shmeeps
24

Je me sens exclu de la conversation. Voici mon fichier .hgignore. Il couvre le développement C #, C ++ et Visual Studio en général, y compris les éléments COM (bibliothèques de types), certains fichiers de générateur finaux, les mises à niveau de projet CodeRush, ReSharper et Visual Studio. Il a également quelques ignorés 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*.*
Damian Powell
la source
+1, le vôtre utilise Debug /, donc n'acceptera pas "Debug.something.cs"
Sebastian
11

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

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

Quelques notes:

  1. Si vous avez des "versions" personnalisées en plus de "Debug" et "Release", vous devrez peut-être les ajouter.
  2. Soyez prudent lorsque vous modifiez manuellement votre .hgignore. Si vous faites une erreur de syntaxe, hgtortoise n'ouvrira plus la boîte de dialogue de validation.
jm.
la source
8

Contenu de mon fichier 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

Gardez à l'esprit que je travaille principalement sur des projets WinForms, ASP.NET MVC et Mobile utilisant Microsoft Visual Studio et occasionnellement MonoDevelop. En fonction de votre ensemble d'outils et des types de projets, vous rencontrerez probablement d'autres fichiers qui doivent être ignorés.

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

AlGonzalez
la source
4

quelques autres que j'utilise:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch
rohancragg
la source
3

En voici quelques embêtants: les sauvegardes automatiques Matlab et Excel / Office.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Si je les ajoute accidentellement et que je ferme ensuite le vrai fichier qui était ouvert, Excel et / ou Matlab supprimeront l'enregistrement automatique et Mercurial se demandera où ils sont allés. Je suis sûr qu'il existe d'autres programmes qui font des choses similaires.

Nathan Donnellan
la source