2012-01-04 169 views
1

我正在使用Perforce的C++ API的應用程序,這是我如何創建一個新的客戶端:Perforce的P4 C++ API客戶端創建

OutputClient ui; 

char* argv[1] = {"newClient"}; 

client.SetArgv(1,argv); 
client.Run("client", &ui); 
client.Set("newClient"); 

這與使用命令:

p4 client newClient 

這將創建客戶端(如果它不存在)並將工作區(客戶端根目錄)設置爲我的Visual Studio項目目錄。

有什麼方法通過p4命令或使用API​​來指定或設置客戶端根? 而且當我使用「客戶端」命令時,它總是打開那個惱人的表單,有什麼辦法可以阻止它發生?

回答

0

help for p4 client表示默認客戶端根目錄是當前工作目錄。也許這就是它選擇你的Visual Studio項目目錄的方式。

從命令行,您可以將clientspec(包括所需的根目錄)寫入文件,然後使用p4 client -i < clientspec.txt將其上傳到服務器。 C++ API支持在沒有臨時文件的情況下執行相同的操作,編號爲overriding ClientUser::InputData()

p4 client -ip4 client -o clientname > clientspec.txt結合使用特別有用,因爲您可以讀取現有客戶端規格,修改它並將其寫回服務器。 (當然,這不是原子讀取/修改/寫入。)

+0

謝謝!這正是我需要更改或編輯客戶端root的!還有一件事,你知道每次調用客戶端命令時,它都會打開臨時表單文件來編輯客戶端規範,你知道我該如何禁用或停止該行爲? – Chrono 2012-01-04 15:00:19

+0

'-i'選項應該防止'p4 client'打開一個編輯器,並且它可以讓你的程序完全控制clientspec。但是如果你不想使用'-i',那麼將'P4EDITOR'環境變量設置爲你所選擇的命令可以做你想做的事情。 – bk1e 2012-01-05 07:10:16

+0

如果我首先將P4CLIENT變量設置爲我在clientspec.txt中定義的客戶端名稱,那麼您是對的,-i選項禁止打開編輯器的命令。謝謝! – Chrono 2012-01-05 12:31:06