Как найти неразрешенные файлы с помощью библиотеки Perforce p4java? - PullRequest
1 голос
/ 03 января 2012

Использование библиотеки p4java от Perforce (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 Ответ

1 голос
/ 04 января 2012

Комплексный способ - запустить версию команды fstat для P4Java и проверить, требуется ли разрешение файла.Вот пример кода (не гарантированно пуленепробиваемый), который работает в простом тестовом примере.

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 должен сообщить вам, что вы хотите.

Надеюсь, это поможет!

...