2015-11-09 45 views
1

我想創建一個觸發器來防止文件檢出,如果它們屬於特定的流。Perforce - 在觸發器腳本中獲取流名稱

我正在使用用戶前編輯觸發器。

該觸發器執行一個Perl腳本。

當我在Perl腳本一個P4命令執行,然後我得到這個錯誤:

Perforce的密碼(P4PASSWD)無效或取消。

我所做的是獲得流的名字在客戶端名稱(這是傳遞給Perl腳本):

$ stream = `p4 client -o $ client | grep ^Stream: | awk '{print \$ 2}'`; 
chomp $ stream; 

這是行不通的。

另外,試圖爲新P4分配$ p4失敗。

任何人都有線索如何解決這個問題?

至少,給我一種方法來提取客戶端名稱的流名稱?

感謝,

+0

是你的問題如何解決「密碼無效或未設置」錯誤?或者是你的問題如何找出當前設置的特定客戶端工作區的流名稱? –

回答

2

您必須登錄到Perforce的運行p4 client。在交互式shell中,您通過p4 login執行此操作,它會提示您輸入密碼。一旦驗證完成,Perforce會讓您登錄一週左右(取決於您的P4服務器設置)。在那一週內,你的命令應該會成功,但是一旦你的會話過期,它將再次開始失敗。

如果會話過期對您來說是個問題,您需要獲取未過期的票證。這必須由您的服務器管理員啓用(請參閱「創建不會過期的票證...」att p4 login)。另見P4TICKETS

0

作爲替代,
$ stream = p4 -F "%Stream%" -ztag client -o;

這隻會給你流名稱(不需要修剪)