我刚刚编写了一种用于获取两个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”命令。捕获输出并将其传递到您的应用程序。

10-05 22:32