1

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
}

あなたが提供できるものをありがとう!

4

1 に答える 1

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メソッドは、あなたが望むものを教えてくれるはずです。

それが役立つことを願っています!

于 2012-01-04T16:44:48.417 に答える