2012-08-30 24 views
0

我想通過Java代碼獲取P4分支上的鎖定。任何人都知道通過Java實現它的鋤頭?通過Java代碼獲取P4上的鎖定

我用下面的代碼:這裏

IBranchSpec ibranchSpec = underlyingPerforceOptionsServer .getBranchSpec("//Tools/Patch/bin/"); 
ibranchSpec.setLocked(true); 

問題是ibranchSpec包含所有車廠,我不知道爲什麼。

setLock的API表示只有在完成服務器更新後纔會開始工作。我嘗試使用類似的東西:

ibranchSpec.Update(); 

它會拋出異常。有任何想法嗎?

com.perforce.p4java.exception.RequestException: Error in branch specification. 
    You cannot use the default branch view; it is just a sample. 

回答

1

您所描述的行爲是因爲您正在使用新的分支規範,而不是現有規範。

但你可能會遇到一個共同的困惑,這是混淆了分公司規範了一組文件在庫中。

也就是說,分支規範介紹如何//工具/發行/斌/ ...映射到//工具/補丁/斌/ ...是從一套文件不同//工具/補丁程序/ bin/...

一般來說,Perforce工作流程通常不會鎖定文件集,因爲Perforce的要點是允許許多用戶同時編輯工作,併合並更改管理衝突解決。

但是,如果您有一個更高級別的開發工作流程,您希望在某些時間控制誰以及何時可以檢入存儲庫的某些部分,這是絕對合理的。

根據我的經驗,最好的方法是使用Perforce 保護機制:建立一個描述存儲庫各個部分的保護文件,以及誰可以提交到哪個部分。使用用戶組來描述用戶組,並儘量保證您的整體保護表格非常簡單。然後,要從一組用戶中「鎖定」或「解鎖」一部分存儲庫(「分支」),您需要更新保護表以拒絕(「鎖定」)或授予(「解鎖」)允許該組寫入該分支。

這個相關的問題在其答案中有很好的描述:Locking a branch in perforce?