我刚刚编写了一种用于获取两个IFileSpec对象之间的差异列表的方法,但是,我不知道如何实际从IFileDiff对象中检索差异。
这是我到目前为止编写的方法,
public void getFileDiff(String file1, String file2){
List<IFileSpec> fileList1 = null;
List<IFileSpec> fileList2 = null;
List<IFileDiff> fileDiff = null;
try{
fileList1 = getIFileSpecList(file1);
fileList2 = getIFileSpecList(file2);
fileDiff = iServer.getFileDiffs(fileList1.get(0), fileList2.get(0), null, DiffType.IGNORE_LINE_ENDINGS,false,true,false);
for(IFileDiff iFileDiff : fileDiff) {
System.out.println(iFileDiff.getRevision1() + " ::: " + iFileDiff.getRevision2());
}
}
catch(Exception e){e.printStackTrace();}
}
这段代码愉快地打印了文件的正确修订版,但是获得实际的String差异是我尚未遇到的事情。如果有人知道该怎么办,我真的很想听听您的消息!
最佳答案
据我所记得,我忘记回答这个问题,无法使用Perforce Java API来获得两个文件的区别。唯一的方法是,将文件同步到一个临时位置,然后调用操作系统的内置“ diff”命令。捕获输出并将其传递到您的应用程序。