2017-06-14 61 views
0

我能夠將文件從遠程服務器的Perforce使用此命令使用perforce命令從perforce服務器向本地機器遞歸複製目錄(不創建工作空間)?

p4 print -o <output_filename> <remote_filename> 

但是複製到我的本地機器上,我這裏有兩個問題。 首先,我必須手動指定我的輸出文件名。 其次,我無法打印出目錄中的所有文件和子目錄。

我想要做的是應對遞歸是Perforce服務器到我的本地機器目錄中的特定目錄,而無需創建我的本地機器上的工作空間是什麼。

預先感謝您

回答

2

簡單的答案:丟棄的要求不創建本地計算機上的工作空間,並創建本地計算機上的工作區。這是方式更容易和更快創建工作區,sync -p,並刪除工作空間比它重新實現p4 sync

p4 --field "View=//depot/path/... //TEMPCLIENT/..." --field "Root=C:\output_path" client -o TEMPCLIENT | p4 client -i 
p4 -c TEMPCLIENT sync -p 
p4 client -d TEMPCLIENT 

硬答案:實現自己的觀點映射邏輯。使用p4 files //depot/path/...獲取文件夾列表,然後使用正則表達式的每個庫文件映射到本地文件,然後運行每一對p4 print命令。它看起來像這樣:

p4 -F %depotFile% files //depot/path/... | (some gnarly piece of awk/sed/perl that takes "depotFile" as input and produces "print -o localFile depotFile" as output) | p4 -x - run 
+0

因此,我按照山姆斯塔福德硬答案列出每個文件的完整路徑,我想複製一個所需的目錄。然後我編寫腳本到每個文件路徑的子字符串以獲取文件名。最後,我爲每個文件運行「打印」命令。它類似於正則表達式。 – richard

相關問題