2010-03-19 72 views
5

在閱讀Joel上一篇關於Mercurial的文章之後,我將它作爲一個單用戶,單電腦源代碼控制系統在XP上進行了嘗試。一個存儲庫/多個項目沒有混淆?

但是,我想要檢查的一件事是:只需創建一個我保存的所有小項目的存儲庫比較容易。 C:\ VB.Net \,但結果是我對其中不同項目(C:\ VB.Net \ ProjectA \,C:\ VB.Net \ ProjectB \等)所做的更改將混入一個更新日誌。

但是,如果我爲所有項目使用單個存儲庫,那麼當執行diff或更改歷史記錄時,是否可以過濾數據,以便只查看與給定項目有關的更改?否則,在每個項目目錄中創建存儲庫是唯一的解決方案?

謝謝。

回答

5

我會爲每個單個項目保留一個存儲庫。開銷很小(每個源代碼目錄只有一個hg init,或者在資源管理器中右鍵單擊),並且您不會感到困惑。畢竟,爲什麼要改變一個程序會影響一個完全不相關的版本歷史?

當然,你可以看到在資源庫資源管理器中的每個文件的歷史記錄,但我認爲它違背了版本控制的概念本身無關的東西組合成一個存儲庫。

+0

謝謝你們。所以我將繼續在每個項目子目錄中創建一個回購。 – Gulbahar 2010-03-22 19:01:25

4

DVCS的正確粒度(即回購,其中所有歷史可以克隆)是項目。

如果您有幾個項目具有不同的開發生命週期(即更改一個並不總是影響另一個),他們應該在他們自己的回購。

0

如果有人使用bitbucket,他們只允許一個私有存儲庫,所以如果你希望它們是私有的,你可以把所有的項目放在那裏。我想聽聽關於這種情況的評論。

0

如果你去一個資料庫,並且只淺淺項目:

cd C:\VB.Net\ProjectA\ 
hg log *.* 

否則,可能必須指定具體的文件擴展名,以避免過多的遞歸:

cd C:\VB.Net\ProjectA\ 
hg log **/*.cpp 

它可以是雖然有點緩慢......如果項目真的是分開的,標籤/分支可能會讓人困惑。

注:我很少想到「Hello world!」值得自己的存儲庫,因爲它可能是「獨立」的。