2012-07-31 31 views
1

我是一名應用數學家,最近我加入了一個項目,該項目涉及我們科學應用程序的開發代碼。代碼庫不小,它作爲Web應用程序的一部分進行部署。關於我的存儲庫結構的建議

當我加入時,代碼在沒有版本控制系統的情況下被奇蹟般地維護。在服務器中有一箇中央文件夾,研究人員在需要使用代碼時會從中複製文件夾。在這個根目錄下面有一組具有不同版本代碼的目錄,所以人們將開始研究他們找到的最新版本,並用他們的修改創建一個新版本。

我創建了一個Mercurial倉庫,添加了所有的代碼版本,並說服所有人使用它。但是,自從轉向Mercurial以來,我們幾乎感覺不到需要升級版本號,即使使用hg copy也不會讓我們保留修訂歷史記錄。

這裏是我需要你維護這個代碼庫的最佳實踐的建議。在RCS下使用不同版本的文件夾保存在回購中是否有意義?如果我們將代碼的單個副本保存在回購中,跟蹤版本的最常見方式是什麼?自述文件?我們是否應該將代碼的快照保存在指定版本的repo之外?保持原樣是否有意義?你使用什麼策略?

我們的團隊是一羣科學家,沒有人有關於如何維持這樣的回購的經驗,所以我對什麼是通常做的感興趣。

回答

6

如果您打算使用版本控制系統,請忘記這些版本文件夾。完全地。 Mercurial會爲您做到這一點,該存儲庫是項目所有文件的完整歷史記錄。

跟蹤版本號的常用方法是tags。您將帶有版本號的標籤分配給變更集。

爲了幫助您,作爲版本控制中的「入門指南」,我建議您閱讀本書:Version Control By Example。它是免費的,它從一開始就講述CVCS,DVCS,基礎知識,存儲庫是什麼,基本命令等。它也有一些有趣的類比,比如3D文件系統:目錄x文件x時間。這本書很有趣,很容易理解,我強烈推薦它。

我還推薦一些GUI軟件,如TortoiseHg。在日常使用中,我大部分時間都花在控制檯上,但是當您仍然不知道所有命令時,特別是在開始時GUI非常方便。最好的部分是圖表,你可以直觀地看到正在發生的事情。

0

This是對Mercurial的一個很好和快速的介紹,它甚至開始討論如何使用文件夾來保持不同的版本並不那麼好。

我想你可能是在錯誤的軌道上,如果你使用的是汞複製命令,我從來沒有需要它;)

的教程教汞的命令行版本,這是我個人比較喜歡。當您需要更好地瞭解存儲庫時,可以運行「hg serve」並在您的Web瀏覽器中打開localhost:8000。我更喜歡TortoiseHG,但我意識到很多人都想要一個純粹的GUI工具。