我喜欢使用Perforce Java API列出自分支的特定变更列表以来的所有变更列表。
在命令行上,您可以使用以下命令获取它:p4更改-L BRANCHNAME @ CHANGELISTID,#head。
但是现在我喜欢使用API​​。

 List<IFileSpec> fileSpecs = new ArrayList<>();
 FilePath path = new FilePath(PathType.DEPOT, p4Branch + "/...");
 FileSpec fileSpec = new FileSpec(path);
 fileSpec.setChangelistId(changelist.getId());
 printFileSpec(fileSpec);
 fileSpecs.add(fileSpec);

 try {
     changelists = server.getChangelists(100, fileSpecs, null, null, false, true, false, true);
      if(changelists.isEmpty()) {
            System.out.println("Empty Changelists");
        } else {
            System.out.println("Changelists has " + changelists.size() + " elements");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }


使用fileSpec.setChangelistId(changelist.getId());我只能设置为它会在变更列表之前给我变更列表(这与命令类似:p4更改-L BRANCHNAME @ CHANGELISTID,这也与我的fileSpecs外观完全一样。

是否可以在API中进行设置以实现这一目标?
还是我必须使用API​​的一些不同方法?

谢谢。

最佳答案

尝试通过以下方式构建FileSpecs:

List<IFileSpec> fileSpecs = FileSpecBuilder.makeFileSpecList(p4Branch + "/...@" + changelist.getId() + ",#head");

09-26 15:07