2012-11-12 35 views
6

在偶然刪除了我的Svn回購之後,我想嘗試其他方法,並選擇了Perforce作爲我當前的版本工具測試場。它進展順利,我喜歡在Perforce中看到的東西。如何在Perforce「depots」之間移動文件夾

這是我的問題。我已將我的文件提交給我的Perforce服務器,然後使用我的客戶端PC從主Perforce服務器獲取這些項目。現在所有的工作都很棒,除了我意識到可以在Perforce中使用多個「軟件倉庫」,並且對於我來說,我應該將這些項目中的一些移到另一個軟件倉庫以便組織,出於安全原因客棧的情況。

我一直在尋找一些答案,我發現他們中的幾個,但我無法產生任何預期的結果,因此我在這裏尋找一些專家的建議。

我有嘗試過的網頁是這個

http://kb.perforce.com/article/24/renaming-depot-directories

似乎提供了一個解決方案,但是我一直無法從一個庫移動到另一個文件庫是在同一臺服務器上處理。該頁面中的示例可以將某個文件夾移動到同一軟件倉庫中的文件夾中。該示例似乎演示了移動到同一軟件倉庫下的另一個文件夾。

所以我正在尋找一種合理和安全的方式將我的主Perforce倉庫文件夾移動到同一服務器上的另一個倉庫,並且自然不會丟失任何工作。

這裏就是我想

- 當前

//Depot-A 
-->folder1 
-->folder2 

- 我想

//Depot-A 
-->folder1 

//Depot-B 
-->folder2 

感謝

回答

5

在不同軟件倉庫之間移動文件與在同一軟件倉庫內的文件夾之間移動文件沒有區別,但目標軟件倉庫必須已經存在。使用您的例子中,假設「返廠-B」尚不存在,爲「文件夾2」,從「寶-A」到「返廠-B」移動,你會簡單地做到這一點:

p4 depot Depot-B 
p4 edit //Depot-A/folder2/... 
p4 move //Depot-A/folder2/... //Depot-B/folder2/... 
p4 submit 
+1

您確實需要首先定義Depot-B。你可以用'p4 depot'命令來做到這一點。倉庫可以在服務器上有單獨的物理存儲器,因此它們需要一個簡短的定義。 –

+0

@ p4-randall:謝謝,我修改了我的答案。我想倉庫有點特別。 – raven

-1

我不認爲其他軟件倉庫中增加多少安全的方式。多個軟件倉庫場景主要出現在非常大的安裝中。

其他軟件倉庫的主要好處是,您可以更好地控制服務器的磁盤空間佈局,例如,如果您的存儲庫太大而無法適應單個文件系統,並且需要將其擴展爲使用多個文件系統。創建更多倉庫的第二個原因是,如果您必須擁有特定類型的倉庫,例如,如果您希望創建Streams庫來使用Perforce Streams功能。

對於像您所描述的情景,在可預見的將來,將倉庫A下的所有文件都打包好。

+0

布賴恩彭德爾頓,感謝您的洞察力。不過,我想知道這是如何爲未來的需求真正做到的。 –

0

這裏是我會做(簡而言之):如果您打開P4V會話並選擇提交的更改列表選項卡,則可以過濾此設置以僅顯示與要移動的部分相關的更改。這是您要在新的軟件倉庫(或甚至服務器)上覆制的要更改的更改集。這個想法是,你正在解開檔案文件的一面,並以相同的方式在目的地纏繞它們。因此,這個過程簡單地(1)同步到第一個更改列表,(2)將該集合集成到新的位置,(3)檢查設置,以及(4)繼續到下一個更改列表。顯然這可以編寫腳本。我目前正在使用python編寫腳本,但是任何具有Perforce函數庫的體面腳本語言都可以使用。一些併發症:更改列表將依次與原件相同,但原始時間不會 - 它們將是「當前」。當然如果有標籤的話,如果你想保留它們,你需要將它映射到新的位置。

相關問題