java - 如何使用 Perforce p4java 库查找未解析的文件?

标签 java perforce p4java

使用 Perforce 的 p4java 库 (http://kb.perforce.com/article/1086/p4java-api),我试图找出更改列表中的哪些文件未解决,需要先解决,然后才能提交。

IChangelist changelist = getServer().getChangelist(changelistId);
List<IFileSpec> changelistPendingFiles = changelist.getFiles(false);

在此列表中,我试图找出哪些 IFileSpec 仍需要解析。

类似这样的事情:

for (IFileSpec pendingFile : changelistPendingFiles) {
    // How to find out if pendingFile needs to be resolved?

    FileAction action = pendingFile.getAction();
    // The above results in "FileAction.EDIT",
    // but that doesn't tell me anything about the unresolved state

    // The "diffStatus" variable for this pendingFile is "pending"
    // The "howResolved" variable for this pendingFile is null
    // The "opStatus" variable for this pendingFile is VALID
}

感谢您提供的一切!

最佳答案

综合的方法是运行P4Java版本的fstat命令,并检查文件是否需要解析。这是一个在简单测试用例中工作的代码示例(不保证万无一失)。

List<IExtendedFileSpec> extfiles = server.getExtendedFiles(changelistPendingFiles,
    -1,
    -1,
    -1,
    new FileStatOutputOptions(false, false, false, false, false, true),
    null);

for(IExtendedFileSpec extfile : extfiles) {        
    System.out.println(extfile.isUnresolved());
}

FileStatOutputOptions中,我要求提供有关打开且需要解析的文件的信息。 isUn​​resolved 方法应该告诉你你想要什么。

希望有帮助!

关于java - 如何使用 Perforce p4java 库查找未解析的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713392/

相关文章:

jenkins - jenkins Windons 代理上的 Perforce 同步符号链接(symbolic link)错误

强制更改默认编辑器

diff - 在 Perforce GUI 工具中使用 windiff

version-control - 使用 p4 zip 和 unzip 将文件从一台 perforce 服务器导出到另一台

java - 通过java追加perforce权限表会导致权限表为空

java - 无法访问tomcat manager GUI (Tomcat9+Java9)

java - Mybatis关于配置参数的条件

java - 为什么要避免 Java 中的常量折叠?什么时候?

java - 如何随意使用接口(interface)方法?