deltaGenerator.sendDelta(editPath, sourceStream, targetStream, myReporterContext.getEditor(), false);
deltaGenerator.sendDelta(editPath, sourceStream, 0, targetStream, myReporterContext.getEditor(), false);
    private void diffFiles(long sourceRevision, String sourcePath, String targetPath, String editPath, String lockToken) throws SVNException {        /* Compare the files' property lists.  */        diffProplists(sourceRevision, sourcePath, editPath, targetPath, lockToken, false);        String sourceHexDigest = null;        FSRoot sourceRoot = null;        if(sourcePath != null){            FSRevisionNode sourceRootNode = myRevNodesPool.getRootRevisionNode(sourceRevision, myReposRootDir);//FSReader.getRootRevNode(myReposRootDir, sourceRevision);            sourceRoot = FSRoot.createRevisionRoot(sourceRevision, sourceRootNode);            /* Is this delta calculation worth our time?  If we are ignoring             * ancestry, then our editor implementor isn't concerned by the             * theoretical differences between "has contents which have not             * changed with respect to" and "has the same actual contents             * as".  We'll do everything we can to avoid transmitting even             * an empty text-delta in that case.               */            boolean changed = false;            if(myReporterContext.isIgnoreAncestry()){                changed = checkFilesDifferent(FSRoot.createRevisionRoot(sourceRevision, sourceRootNode), sourcePath, FSRoot.createRevisionRoot(myReporterContext.getTargetRevision(),myReporterContext.getTargetRoot()), targetPath);             }else{                changed = areFileContentsChanged(FSRoot.createRevisionRoot(sourceRevision, sourceRootNode), sourcePath, FSRoot.createRevisionRoot(myReporterContext.getTargetRevision(), myReporterContext.getTargetRoot()), targetPath);            }            if(!changed){                return;            }            FSRevisionNode sourceNode = myRevNodesPool.getRevisionNode(sourceRootNode, sourcePath, myReposRootDir);            sourceHexDigest = FSRepositoryUtil.getFileChecksum(sourceNode);        }        /* Sends the delta stream if desired, or just calls          * the editor's textDeltaEnd() if not.          */        myReporterContext.getEditor().applyTextDelta(editPath, sourceHexDigest);        if(myReporterContext.isSendTextDeltas()){            InputStream sourceStream = null;            InputStream targetStream = null;            try{                if(sourceRoot != null && sourcePath != null){                    sourceStream = FSReader.getFileContentsInputStream(sourceRoot, sourcePath, myRevNodesPool, myReposRootDir);                }else{                    sourceStream = FSInputStream.createDeltaStream((FSRevisionNode)null, myReposRootDir);                }                targetStream = FSReader.getFileContentsInputStream(FSRoot.createRevisionRoot(myReporterContext.getTargetRevision(), myReporterContext.getTargetRoot()), targetPath, myRevNodesPool, myReposRootDir);//FSInputStream.createDeltaStream(targetNode, myReposRootDir);                SVNDeltaGenerator deltaGenerator = new SVNDeltaGenerator();                deltaGenerator.sendDelta(editPath, sourceStream, targetStream, myReporterContext.getEditor(), false);            }finally{                SVNFileUtil.closeFile(sourceStream);                SVNFileUtil.closeFile(targetStream);            }        }else{            myReporterContext.getEditor().textDeltaEnd(editPath);        }    }    