Mercurial .hgignore für Visual Studio 2008-Projekte


164

Was ist ein gutes Setup für die .hgignore-Datei, wenn Sie mit Visual Studio 2008 arbeiten?

Ich entwickle mich meistens selbst, nur gelegentlich klone ich das Repository, damit jemand anderes daran arbeiten kann.

Ich denke an obj-Ordner, .suo, .sln, .user-Dateien usw. Kann ich sie einfach einschließen oder gibt es Dateien, die ich nicht einschließen sollte?

Vielen Dank!

ps: im moment mache ich folgendes: ignoriere alle .pdb dateien und alle obj ordner.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/

6
Randnotiz: Ich denke, die .sln-Dateien sollten nicht von der Quellcodeverwaltung ausgeschlossen werden
Slavo

2
Slavo, du hast recht. Lösungsdateien (.sln) enthalten die Struktur Ihrer Projekte, daher sollten Sie diese in Ihr Repository aufnehmen.
Sogar Mien

Antworten:


208

Hier ist meine Standard-Hgignore-Datei zur Verwendung mit VS2008, die ursprünglich aus einer Git-Ignorierdatei 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

4
Nein, aber sie haben das gleiche Konzept einer Ignorierdatei.
Auch Mien

2
Die Zeile [Db] ebug * / - Ich gehe davon aus, dass dies ein Kleinbuchstabe d und kein Kleinbuchstabe b sein sollte. Ich habe diese Ignorierliste als Vorlage verwendet und eine Minute gebraucht, um herauszufinden, warum zum Teufel ein "Debug" -Ordner nicht war. t ignoriert werden :) Danke für die tolle Ignorierdatei.
Nate Pinchot

4
Ich habe nach dem Ignoriercode gesucht, den Rob Connery in seinem Mercurial for Codeplex Tekpub-Video verwendet hat, und er passte genau zu diesem Code. Gut gemacht!
Ben McCormack

1
Für mich bedeutete dies, dass eine Datei mit dem Namen Debug.Something.dll.config ignoriert wurde, daher denke ich, dass das nachfolgende / auf [Dd] ebug * / nicht den gewünschten Effekt hat. Vielleicht sollte es für Windows [Dd] ebug * \ sein?
Rory

2
Für mich bedeutete dies, dass eine Datei mit dem Namen Debug.Something.dll.config ignoriert wurde, daher denke ich, dass das nachfolgende / auf [Dd] ebug * / nicht den gewünschten Effekt hat. Ich denke, das Problem ist, dass die Syntax im Glob-Stil in Verzeichnissen nicht richtig übereinstimmt. Wenn Sie die Debug und Veröffentlichung Linien herausnehmen und sie am Ende der Datei mit drei neuen Linien ersetzen: syntax: regexpund [Rr]elease.*/und [Dd]ebug.*/dann scheint es richtig zu arbeiten.
Rory

37

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

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

Ich habe keine Probleme, den Code im Depot auf anderen Computern auszuführen, nachdem ich alle diese Dateien ignoriert habe. Der einfachste Weg, um herauszufinden, was Sie behalten müssen, besteht darin, eine Kopie des Ordners zu erstellen und Dinge zu löschen, die Sie für nicht notwendig halten. Versuchen Sie weiter zu erstellen, und löschen Sie weiter, solange Sie erfolgreich erstellen können. Wenn Sie zu viel löschen, kopieren Sie es aus dem Quellordner.

Am Ende haben Sie ein schönes Verzeichnis mit den einzigen Dateien, die festgeschrieben werden müssen.


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 Kennwörter in der web.config.
Ash Machine

Ich dachte immer, du brauchst .suo dafür, danke für den Tipp. Wir hatten die ganze Zeit Konflikte.
Shmeeps

24

Ich fühle mich von der Unterhaltung ausgeschlossen. Hier ist meine .hgignore-Datei. Es behandelt die C # -, C ++ - und Visual Studio-Entwicklung im Allgemeinen, einschließlich COM-Material (Typbibliotheken), einiger endgültiger Builder-Dateien, CodeRush-, ReSharper- und Visual Studio-Projekt-Upgrades. Es hat auch einige Ignoranzen für die moderne (ca. 2015) Webentwicklung.

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

11

Hier ist der Inhalt meines .hgignore für C # Visual Studio-Projekte:

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

Ein paar Anmerkungen:

  1. Wenn Sie neben "Debug" und "Release" benutzerdefinierte "Releases" haben, müssen Sie diese möglicherweise hinzufügen.
  2. Seien Sie vorsichtig, wenn Sie Ihren .hgignore manuell bearbeiten. Wenn Sie einen Syntaxfehler machen, öffnet hgtortoise den Commit-Dialog nicht mehr.

8

Inhalt meiner Mercurial .hgignore-Datei:

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

Denken Sie daran, dass ich hauptsächlich an WinForms, ASP.NET MVC und Mobile-Projekten mit Microsoft Visual Studio und gelegentlich MonoDevelop arbeite. Abhängig von Ihrem Toolset und Ihren Projekttypen werden Sie wahrscheinlich auf andere Dateien stoßen, die ignoriert werden sollten.

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


4

einige andere benutze ich:

output
PrecompiledWeb
_UpgradeReport_Files

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

3

Hier sind ein paar lästige: Matlab und Excel / Office Autosaves.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Wenn ich sie versehentlich hinzufüge und dann die tatsächlich geöffnete Datei schließe, löschen Excel und / oder Matlab das automatische Speichern, und Mercurial bleibt stecken und fragt sich, wohin sie gegangen sind. Ich bin sicher, dass es andere Programme gibt, die ähnliche Dinge tun.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.