2

我刚刚编写了一个获取两个 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();}
    }

这段代码愉快地打印了文件的正确修订,但获得实际的字符串差异是我尚未遇到的。如果有人知道该怎么做,我真的很想听听你的消息!

4

1 回答 1

0

我忘了回答这个问题,据我所知,没有办法使用 Perforce Java API 来获得两个文件的差异。唯一的方法是,将文件同步到一个临时位置并调用操作系统内置的“diff”命令。捕获输出并通过管道传输到您的应用程序。

于 2012-10-31T18:37:23.450 回答