如何从特定的变更列表中获取分支的所有变更列表?

时间:2015-05-29 16:13:01

标签: java perforce

我喜欢使用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());我只能设置它会在Changelist之前给我更改列表(这与命令相似:p4更改-L BRANCHNAME @ CHANGELISTID,这也是我的fileSpecs的样子。

是否有可能在API中设置一些内容来实现这一目标? 或者我是否必须使用一些不同的API方法?

感谢。

1 个答案:

答案 0 :(得分:0)

尝试以这种方式构建FileSpec:

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