2010-08-30 43 views
0

我在存儲庫之外有一個目錄。我把生成的來源放在那裏。這些生成的來源需要FOREVER才能創建。我不想讓團隊中的每個人都生成這些源代碼,而是希望使用我們的生成器生成源代碼並檢查它們。我該如何做到這一點,並確保源代碼管理的目錄只包含最新的文件,而不是以前生成的文件,但不包含最新版本中的文件。使用perforce捕獲外部目錄的當前狀態

我正在考慮對生成的目錄(對於現有文件)中的所有文件執行p4 edit,然後使用通配符執行p4 add以獲取任何新文件,但我不知道如何處理文件以前生成,但不是在最近的版本中生成(應該刪除)。

回答

0

開始如你所說 - P4編輯和P4添加捕獲所有的變化,然後調用

p4 revert -a 

這將恢復在是開放的編輯,但實際上是不變或缺失車廠的任何文件。

+0

是的,我也必須這樣做。這雖然沒有解決問題。在生成器創建文件並在更改列表1中提交它的情況下,但在更改列表2中它不會再生成它,因爲它不是必需的或錯誤的。在這種情況下,我需要從源代碼控制中刪除它。 – 2010-08-31 15:47:24

+0

哎呀,對不起。錯讀了這個問題。 – tenpn 2010-09-01 11:03:58

0

一個想法是,在構建之前,手動刪除此區域中的所有內容(不是通過Perforce,而是通過OS)。完成構建後,請執行「協調離線工作」。這將在Perforce中協調你在這方面的內容,方法是添加新文件,刪除那些不再存在的文件,並編輯那些已經更改的文件。

您可以通過P4V協調離線工作,如圖所示here.在工作區瀏覽器中,右鍵單擊該文件夾並選擇「協調離線工作」。

或者,你可以做到這一點通過命令行,如果你喜歡更自動化的解決方案,如圖here.(注:此鏈接還談到通過P4V協調,但這是由以前的鏈接取代)

p4 diff -se //myclient/... | p4 -x - edit 

檢出已更改的文件。

p4 diff -sd //myclient/... | p4 -x - delete 

刪除文件。

find . -type f -print | p4 -x - add 
find . -type l -print | p4 -x - add 

添加文件和符號鏈接在Unix或

dir /s /b /a-d | p4 -x - add 

在Windows中添加文件。

0

對於Perforce中的二進制文件,您可以設置FileType標誌,該標誌僅爲存儲庫中的文件存儲一個(或一組數量)修訂版。通過這種方式,您將擁有該文件的歷史記錄,但其他用戶只能訪問該文件最新版本的二進制文件,而且如果您不需要存儲多個副本,則服務器將只存儲一個更具存儲效率的副本。

要進行更改。

  1. 將您感興趣的文件添加到存儲庫。
  2. 檢出文件。
  3. 右鍵單擊P4V,然後選擇更改文件類型
  4. 在彈出的對話框中,選擇+ S「服務器限制存儲的修改數量」,這將限制存儲的文件數量。

希望這會有所幫助。