final OutputStream stream = consumer.textDeltaChunk(new SVNDiffWindow(0, sourceLength, targetLength, instructionsArray, newDataLength));
final OutputStream stream = consumer.textDeltaChunk(commitPath, new SVNDiffWindow(0, sourceLength, targetLength, instructionsArray, newDataLength));
    private static void doGenerateDiffWindow(ISVNRAData workFile, ISVNRAData baseFile, ISVNDeltaConsumer consumer) throws IOException, SVNException {	    final QSequenceLineResult result;	    try {		    result = QSequenceLineMedia.createBlocks(new SVNSequenceLineRAData(baseFile), new SVNSequenceLineRAData(workFile), null);	    }	    catch (QSequenceException ex) {		    throw new SVNException(ex);	    }	    try {		    final List instructions = new ArrayList();		    final List newDatas = new ArrayList();		    createInstructions(result, instructions, newDatas);		    final QSequenceLineCache baseLines = result.getLeftCache();		    final QSequenceLineCache workLines = result.getRightCache();		    final long sourceLength = baseLines.getLineCount() > 0 ? baseLines.getLine(baseLines.getLineCount() - 1).getTo() + 1 : 0;		    final long targetLength = workLines.getLineCount() > 0 ? workLines.getLine(workLines.getLineCount() - 1).getTo() + 1 : 0;		    final long newDataLength = determineNewDataLength(newDatas);		    final SVNDiffInstruction[] instructionsArray = (SVNDiffInstruction[]) instructions.toArray(new SVNDiffInstruction[instructions.size()]);		    final OutputStream stream = consumer.textDeltaChunk(new SVNDiffWindow(0, sourceLength, targetLength, instructionsArray, newDataLength));		    sendData(newDatas, stream);		    stream.close();		    consumer.textDeltaEnd();	    }	    finally {		    result.close();	    }    }