4

最近我和我的團隊獲得了版本控制的HG存儲庫,因爲這可以使開發我們的應用程序變得更容易和更好。使用Visual Studio 2010和HG進行版本控制

我們正在使用Visual Studio 2010和C#

所有項目在版本控制之下..

不幸的是,當我們的一個承諾,通常是其他打開的時候得到了一些種類的錯誤解決方案(由於VS的各種文件)

我的問題是:什麼文件應該放在版本控制下? (在我的情況下刪除!)

PS:我們有3個項目:(使用XNA)的遊戲,內容,測試

非常感謝您!

回答

5

至少你需要這些在.hgignore

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

根據需要添加。但是不要過分臃腫,因爲你可能會以這種方式丟失數據。對於instace @ Darin的回答會導致您停止跟蹤私鑰文件(.snk)。

+0

感謝大家!它完全解決了我的問題。 – PirosB3 2010-11-21 17:32:40

+0

這太短了 - 當你使用MS測試時會發生什麼?您不想保存這些結果文件。你不想要PEM密鑰,SQL二進制備份,你不想要resharper文件,所有形式的日誌文件等等。這樣可以很好地工作,但這是最簡單的,當用戶意識到「哦CRAP - 老兄爲什麼我們的50Mb BAK文件進入!」時,會導致用戶嘆息。 – 2010-11-22 05:44:53

+1

羅布我反對任何關於人們使用什麼的假設。這就是爲什麼我提供了一個最小集合。我相信'.hgignore'應該有意識地建立,而不是盲目的。這就是爲什麼我說「按需添加」。 VS默認情況下不會產生你提到的任何文件。如果我們根據人們可能使用哪些工具以及他們將來可能生成哪些文件的可能性構建.hgignore文件,那麼.hgignore會非常大,不可維護,並且實際上可能導致需要的文件滑出,這更糟糕而不是源代碼管理中的多餘文件。 – 2010-11-22 14:24:16

1

這裏的文件和目錄的列表,我從版本控制中排除目錄的情況下,我排除遞歸一切,從這個目錄):

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

我下面使用,它從羅布來到Conery在他的tekpub上爲mercurial提供的教程(http://tekpub.com/view/hg/1 & http://tekpub.com/codeplex)。它在git repo上,最初用於VS 2K8,但對於2K10來說工作得很好。 http://gist.github.com/314082

語法:水珠

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

這是矯枉過正。你爲什麼不忽略bin和obj文件夾? – 2010-11-20 14:55:14

+1

@ssg - 這可能聽起來很奇怪,但感謝投票結果,因爲它讓我思考。我之前沒有對這個忽略文件給予太多的考慮,你的問題讓我想到了哪一個很棒!我有想法,爲什麼它可能會或可能不會矯枉過正,但在回答之前,我認爲我需要做更多的思考/學習。 :-) – klabranche 2010-11-20 15:49:16

+1

這是一個忽略文件,意在維護您的回購的可用性,並在某些情況下保持您的工作副本的完整性。這不是某種你必須隨身攜帶的東西,你投入的東西越多,它越重。爲什麼低頭看着別人做的努力把麥子從糠separate中分離出來,所以你不必這樣做?我可以從經驗告訴你,這是迄今爲止這篇文章中最好的清單。 – 2010-11-20 16:25:03

1

這裏有幾個:

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