通过Java代码获得P4上的锁
我想通过Java代码获得P4分支的锁。有人知道如何通过Java实现它吗 我使用以下代码:通过Java代码获得P4上的锁,java,perforce,Java,Perforce,我想通过Java代码获得P4分支的锁。有人知道如何通过Java实现它吗 我使用以下代码: IBranchSpec ibranchSpec = underlyingPerforceOptionsServer .getBranchSpec("//Tools/Patch/bin/"); ibranchSpec.setLocked(true); 这里的问题是ibranchSpec包含所有仓库,我不知道为什么 setLock的API说,只有在服务器更新完成后,它才会开始工作。我试着用这样的方法: ibr
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.
您描述的行为是因为您使用的是新的分支规范,而不是现有的分支规范 但是,您可能会遇到一个常见的混淆,即将分支规范与存储库中的一组文件混淆 也就是说,分支spec描述了//Tools/Release/bin/。。。映射到//Tools/Patch/bin/。。。与//Tools/Patch/bin/…中的文件集不同 一般来说,Perforce工作流通常不会锁定文件集,因为Perforce的整个要点是允许许多用户同时编辑工作,并合并更改以管理冲突解决 但是,如果您有一个更高级别的开发工作流,您希望在其中控制谁和何时可以在特定时间签入存储库的特定部分,那么这是绝对合理的 根据我的经验,最好的方法是使用Perforceprotections机制:建立一个protections文件,描述存储库的各个部分,以及谁可以提交到哪个部分。使用用户组来描述用户集,并尽量使您的整体保护表保持合理的简单 然后,要从一组用户中“锁定”或“解锁”存储库的某个部分(“分支”),您需要更新保护表,以拒绝(“锁定”)或授予该组(“解锁”)向该分支写入的权限 这一相关问题在其答案中对该技术进行了详细描述: