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

时间:2012-01-03 14:03:16

标签: 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
}

感谢您提供的一切!

1 个答案:

答案 0 :(得分:1)

全面的方法是运行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 中,我要求提供有关已打开且需要解析的文件的信息。 isUnresolved 方法应该告诉你你想要什么。

希望有所帮助!