4

Kürzlich haben mein Team und ich ein HG Repository für die Versionierung bekommen, da dies die Entwicklung unserer Anwendung erleichtern und verbessern würde.Versionierung mit Visual Studio 2010 und HG

Wir Visual Studio 2010 und C#

Alle des Projekts verwenden, ist unter Versionskontrolle ..

Leider, wenn einer von uns verpflichtet, in der Regel der andere einen Fehler von irgendeiner Art erhält, wenn die Öffnung Lösung (aufgrund der verschiedenen Dateien VS hat)

Meine Frage ist: Welche Dateien sollten unter Versionskontrolle gesetzt werden? (Und in meinem Fall entfernt!)

PS: Wir haben 3 Projekte: (mit XNA) Spiel, Inhalte, Test

Thank you very much !!!

Dan

Antwort

5

Mindestens Sie diese in Ihrem .hgignore benötigen:

syntax: glob 
bin 
obj 
*.sln.cache 
*.suo 
*.user 

hinzufügen, wie gebraucht. Überschätzen Sie jedoch nicht, da Sie auf diese Weise Daten verlieren können. Für Instanz @ Darin's Antwort bewirkt, dass Sie die Verfolgung von privaten Schlüsseldateien (.snk) beenden.

+0

Danke an euch alle! Es löste meine Frage vollständig. – PirosB3

+0

Das ist viel zu kurz - was passiert, wenn Sie MS-Test verwenden? Sie möchten diese Ergebnisdateien nicht speichern. Sie möchten keine PEM-Schlüssel, keine SQL-Binär-Backups, keine nachgeschalteten Dateien, keine Form von Protokolldateien und so weiter. Das wird gut funktionieren, aber es ist das Nötigste und wird dazu führen, dass ein User stöhnt, wenn er merkt "Oh CRAP - Alter, warum unsere 50Mb BAK Datei rein geht!". –

+1

Rob Ich bin gegen irgendwelche Annahmen darüber, was Leute benutzen. Deshalb habe ich ein minimales Set zur Verfügung gestellt. Ich glaube, '.hgignore' sollte bewusst und nicht blind gebaut werden. Deshalb habe ich gesagt "füge nach Bedarf hinzu". VS produziert standardmäßig keine der erwähnten Dateien. Wenn wir .hgignore-Dateien basierend auf der Möglichkeit erstellen, welche Tools Benutzer verwenden könnten und welche Dateien sie in der Zukunft generieren könnten, wäre das .hgignore sehr groß, nicht wartbar und könnte tatsächlich dazu führen, dass benötigte Dateien herausrutschen, was viel schlimmer ist als überflüssige Dateien in Ihrer Quellcodeverwaltung. –

1

Hier ist eine Liste von Dateien und Verzeichnissen I aus der Versionskontrolle im Fall von Verzeichnis ausschließen schließe ich rekursiv alles aus diesem Verzeichnis):

bin/ 
obj/ 
TestResults/ 
*.vspscc 
*.user 
*.snk 
*.suo 
*.vssscc 
*.gpState 
Debug/ 
Release/ 
3

ich unten verwenden und es kam von Rob Conery auf seinen Tutorials für mercurial (http://tekpub.com/view/hg/1 & http://tekpub.com/codeplex) bei Tekpub. Es ist auf einem Git Repo und war ursprünglich für VS 2K8 aber funktioniert gut für 2K10. http://gist.github.com/314082

Syntax: glob

*.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

Dies ist Overkill. Warum ignorierst du nicht einfach bin und obj Ordner? –

+1

@ssg - Das mag seltsam klingen, aber danke für die Abstimmung, da sie mich nachdenklich gemacht hat. Ich habe die Ignorierdatei nicht lange vorher durchdacht und deine Frage brachte mich dazu zu denken, was großartig ist! Ich habe Gedanken darüber, warum es vielleicht übertrieben ist oder nicht, aber bevor ich antworte, denke ich, dass ich mehr darüber denken/lernen muss. :-) – klabranche

+1

Dies ist eine Ignorierdatei, die die Benutzerfreundlichkeit Ihres Repos und in einigen Fällen die Integrität Ihrer Arbeitskopie erhalten soll. Es ist nicht irgendeine Art von Pack, die man herumtragen muss, die schwerer wird, je mehr man hineinlegt. Warum solltest du auf die harte Arbeit schauen, die jemand anderes getan hat, um die Spreu vom Weizen zu trennen, damit du nicht musst? Ich kann Ihnen aus Erfahrung sagen, das ist die beste Liste bisher in diesem Beitrag. –

1

Hier sind ein paar mehr:

*.ncb 
*.sdf 
*.ilk 
*.aps 
*.resharper 
_ReSharper* 
*.Cache