2009-06-30 36 views
5

我是一名希望學好版本控制系統的大學CS大一新生。目前我正在研究Subversion,Perforce和Surround SCM。爲大學新生學習版本控制

我將在Linux平臺上將系統與Eclipse集成。涉及的代碼主要是C++,Java和LaTeX(我也將使用Eclipse)。

很可能我會是唯一的用戶,但SVN的優勢在於它是開源的,而另外兩個是專有的。我在TortiseSVN上聽到了很多很好的見證,但是因爲我使用的是Linux,所以我會錯過這一點。

編輯:感謝所有的答案。當然,我也對任何其他版本控制系統開放。我將檢查Git和Mercurial。

回答

8

如果您正在學習版本控制系統,那麼您肯定會考慮使用較新的「分佈式」版本控制系統,如GitMercurial。如上所述,通過將範圍限制爲上一代工具,您將錯過今天人們真正使用的某些(某些)工具。

對於學習系統,我可能不會推薦選擇商業產品。使用開源解決方案,您將免費獲得更好的支持和文檔。

1

如果你打算成爲項目中唯一的一個,絕對應該看看SVN。獲取Subclipse,一個用於Subversion的Eclipse插件,並習慣於此。然後,一旦感覺舒適,就轉到其他版本控制系統。

5

如果這些是你唯一的選擇,絕對是SVN。這是真實人們在野外使用的那個(從該列表中)。

老實說,雖然,學習DVCS。 Git,Mercurial,darcs,其中之一。

1

我想第二個(或第三個)那些建議Git或Mercurial(或Bazaar)的人。分佈式版本控制系統不僅適用於具有多個貢獻者的項目,我使用Git開展任何和所有項目,即使它們只是一擲千金。基本上,您的開發文件夾您的存儲庫 - 它是可移植的,並且很容易添加更多的貢獻者,並在以後轉移到更傳統的集中式工作流程。

我推薦Git,特別是因爲它有一些陡峭的學習曲線,但它教會了我很多關於項目管理,修訂控制,如何合併和修補文件,如何讀取'diff'輸出等。它真的可以讓你深入到版本控制的細節。

1

SVN很容易學習。對於那些使用Windows的人來說,GUI版本非常棒。

即使您運行的是Linux,我仍然建議學習它,因爲它是在地方,如谷歌代碼,Python和WordPress的,等廣泛應用於......

0

巴扎是單人絕對真棒,無服務器開發。整個過程需要五分鐘的時間才能完成,並且可以立即開始工作。它具有大型VCS的功能...但它很容易使用你自己的。

我聽說Git和Mercurial是一樣的......但我有一個=只使用了Bzr。

0

我推薦Subversion,僅僅是因爲它在開源項目中的普遍性。絕對有很多機會將你的Subversion知識應用到開源項目中,如果你這樣做,你會學到很多關於編碼,作爲一個團隊工作,以及在團隊中正確使用VCS(這是一半學習如何使用VCS,而且是很難的部分,因爲你不能很好地學習它)。更少的開源項目使用專有的VCS,這意味着除非您專門與朋友或作爲工作,否則在現實世界中使用它們的機會將會減少。我沒有使用過你提到的其他兩個,但我對Subversion沒有任何抱怨,使用起來非常簡單。

我還想推薦一個分佈式的VCS,比如git。對於分佈式VCS,由於項目中的每個參與者都擁有源存儲庫的完整副本,並且可以完全控制自己的副本,這意味着您可以更靈活地使用VCS功能。您會發現,您可以隨意自由地進行提交,並隨時創建新的分支機構,這對您更改代碼非常有用,並且您希望在必要時能夠返回舊版本。分佈式VCS使您可以使用VCS作爲工具來幫助您編碼,而不僅僅是作爲存儲和與其他人共享代碼的一種方式。這也是非常容易在分佈式VCS中建立一個新的存儲庫。使用git你只需運行git init,它會在當前目錄中設置版本控制。那有多容易?