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



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

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中,我正在询问有关打开并需要解析的文件的信息。isUnresolved方法应该告诉你想要什么。

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新