2008-08-29 13 views
164

Was ist ein gutes Setup für .hgignore-Datei bei der Arbeit mit Visual Studio 2008?Mercurial .hgignore für Visual Studio 2008-Projekte

Ich entwickle mich meistens selbst, nur gelegentlich klone ich das Repository für jemand anderen, um daran zu arbeiten.

Ich denke über Obj Ordner, .suo, .sln, .user Dateien etc .. Können sie nur enthalten sein oder gibt es eine Datei, die ich nicht enthalten sollte?

Danke!

p.s .: Im Moment mache ich folgendes: Ignoriere alle .pdb-Dateien und alle Obj-Ordner.

# regexp syntax. 
syntax: glob 
*.pdb 

syntax: regexp 
/obj/ 
+6

Seitennotiz: Ich denke, die SLN-Dateien sollten nicht von der Quellcodeverwaltung ausgeschlossen werden – Slavo

+2

Slavo, Sie sind richtig. Lösungsdateien (.sln) enthalten die Struktur Ihrer Projekte, daher sollten Sie diese in Ihr Repository aufnehmen. –

Antwort

209

Hier ist meine Standard .hgignore Datei für die Verwendung mit VS2008, die ursprünglich aus einem Git ignorieren Datei geändert wurde:

# 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

sind git und mercurial kompatibel ??? –

+4

Nein, aber sie haben das gleiche Konzept einer Ignorierdatei. –

+1

Wählen Sie, klicken Sie mit der rechten Maustaste, kopieren Sie. Das ist eine großartige Liste. Vielen Dank! –

37

Dies ist spezifisch für einen C# -Projekt, aber ich ignoriere diese Dateien/Verzeichnisse:

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

Ich habe keine Probleme den Code in das Depot auf anderen Rechnern laufen, nachdem ich all diese Dateien zu ignorieren. Der einfachste Weg, um herauszufinden, was Sie behalten müssen, ist, eine Kopie des Ordners zu erstellen und Dinge zu löschen, die Sie für nicht notwendig halten. Versuchen Sie weiter zu bauen, und solange Sie erfolgreich bauen können, löschen Sie weiter. Wenn Sie zu viel löschen, kopieren Sie es aus dem Quellordner.

Am Ende haben Sie ein schönes Verzeichnis voller der einzigen Dateien, die festgeschrieben werden müssen. Hier

+5

Ich ignoriere auch * .config-Dateien, da mein Entwicklerteam alle in leicht unterschiedlichen Umgebungen (lokale Datenbankinstanz, lokaler E-Mail-Server usw.) ausgeführt wird. Außerdem befinden sich Passwörter in der Datei web.config. –

+0

Ich dachte immer du brauchst .sou dafür, danke für den Tipp. Wir hatten ständig Konflikte. – shmeeps

11

ist der Inhalt meiner .hgignore für C# Visual Studio Projekte:

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

Ein paar Anmerkungen:

  1. Wenn Sie benutzerdefinierte haben "veröffentlicht" neben "Debug" und „Release ", Sie müssen möglicherweise sie hinzufügen.
  2. Seien Sie vorsichtig, wenn Sie Ihre .hgignore manuell bearbeiten. Wenn Sie eine Syntax Fehler machen, wird hgtortoise nicht länger den Commit-Dialog öffnen.
8

Meine Mercurial .hgignore Dateiinhalt:

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 

Beachten Ich arbeite hauptsächlich an WinForms-, ASP.NET MVC- und Mobile-Projekten mit Microsoft Visual Studio und gelegentlich MonoDevelop. Je nach Toolset und Projekttyp werden Sie wahrscheinlich auf andere Dateien stoßen, die ignoriert werden sollten.

Ich versuche, die neueste Version auf CodePaste.NET bei http://codepaste.net/zxov7i

24

ich aus dem Gespräch ausgeschlossen fühlen zu halten. Hier ist meine .hgignore Datei. Es umfasst die C# -, C++ - und Visual Studio-Entwicklung im Allgemeinen, einschließlich COM-Stuff (Typ-Bibliotheken), einige abschließende Builder-Dateien, CodeRush, ReSharper und Visual Studio-Projekt-Upgrades. Es hat auch einige Ignoranten für moderne (c.2015) Web-Entwicklung.

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, Ihr verwendet Debug /, wird also nicht "Debug.something.cs" ingore – Sebastian

4

einige andere, die ich verwenden:

output 
PrecompiledWeb 
_UpgradeReport_Files 

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

Hier sind ein paar lästigen diejenigen: Matlab und Excel/Office-automatisches Speichern.

# use glob syntax 
syntax: glob 

# Matlab ignore files 
*.asv 

# Microsoft Office 
~$* 

Wenn ich sie aus Versehen hinzufügen und dann die reale Datei zu schließen, die geöffnet war, Excel und/oder Matlab löscht die Auto-Save und dann wird Mercurial fragen, stecken, wohin sie gingen. Ich bin mir sicher, dass es andere Programme gibt, die ähnliche Dinge tun.