2010-11-15 113 views
1

我已經通讀了關於perforce以及「分支策略」建議的文檔。 有一件事讓我感到莫名其妙,一個簡單的問題似乎沒有得到充分的滿足。 當我正在研究一個涉及我們代碼庫許多部分的項目時,我無法在一天結束時檢查我的代碼,而無需檢查幹線。那麼我需要在這種情況下分支嗎?我希望能夠在一個漫長而艱苦的項目中擁有我的變化歷史,所以當我做錯了轉彎時,我可以回去......perforce像「視圖」一樣執行clearcase

分支問題我看到的是我會正在創建幾乎整個代碼庫的副本..我錯過了一個明顯的解決方案嗎? 謝謝

+0

有一點要記住,你只是看着一個額外的分支,是否正確?你目前遇到問題的硬盤空間是雙倍的嗎? – Chance 2010-11-19 21:09:17

回答

2

從Perforce服務器的角度來看,分支實際上並不是文件的副本。 Perforce使用稱爲「懶惰拷貝」的機制來最小化光盤消耗。從their website,這裏是術語的定義:在庫

使用Perforce公司製作的文件 內部副本的方法沒有 複製文件的內容。 通過將原始文件的引用存儲爲 而不是 文件的副本,延遲副本將磁盤空間的消耗量最小化爲 。

+0

謝謝,但我正在嘗試桌面上的空間。這是有限的。 – Pradyot 2010-11-15 17:06:23

+0

@Pradyot:我明白了。是的,如果您同步到中繼線和分支機構,您將擁有兩個代碼副本。這是沒有辦法的。 – raven 2010-11-15 17:40:19

+0

是的 - 關於perforce分支的重要事情是,它有效地存儲符號鏈接,直到文件被更改 - 這意味着分支在服務器上的開銷非常低。順便說一句如果你正在使用perforce然後購買和閱讀'實用Perforce' - 必不可少的東西 – zebrabox 2010-11-15 22:47:21

1

我所知道的最接近的就是擱架,您可以在其中「擱置」正在進行的工作,並將副本保存在服務器上。我通常這樣做基本上是檢查點我的工作。我認爲這最接近滿足您的需求,您可以在一天結束時保存您的進度。

請參閱here瞭解有關p4v擱架的教程。

或者輸入p4 help shelve以獲得命令行幫助。

+0

我同意,如果你不想在你的開發機器上有兩個源代碼樹的副本,這將是另一個不錯的選擇。 (我不知道這個項目有多大!) – JasonMArcher 2010-11-21 06:26:36

1

使用perforce的最佳方法是在用戶/功能分支中工作,然後您可以避免檢查進入主幹,同時仍將更改推送到庫中。

創建分支時,您不必分支整個主幹或源分支 - 只需分支正在處理的文件 - 您可以通過客戶端將其餘文件映射到您的分支規範。

TBH - 剛買&閱讀'Practical Perforce',它有關於如何做到這一點的有用信息堆,如果你每天使用perforce的話是非常值得的錢。

perforce的另一個非常有用的功能是'jobs' - 通常只爲bug跟蹤進行描述 - 它非常靈活,並且允許您存儲附加到標籤的changelist歷史記錄,以便創建'metatags'並將修訂附加到它即'NightlyBuild'或'BreakingChanges或任何你想要的。
HTH。

相關問題