writeDiffWindow(null);
    public void close() throws IOException {        try{            //flush all data that is still remaining            makeDiffWindowFromData(super.myBuffer, super.myBufferLength);            flushNextWindow();            super.myBufferLength = 0;            super.myBuffer = null;            writeDiffWindow(null);            FSRepresentation rep = new FSRepresentation();            rep.setOffset(myRepOffset);            /* Determine the length of the svndiff data. */            long offset = myTargetFile.getFilePointer();            rep.setSize(offset - myDeltaStart);            /* Fill in the rest of the representation field. */            rep.setExpandedSize(myRepSize);            rep.setTxnId(myRevNode.getId().getTxnID());            rep.setRevision(FSConstants.SVN_INVALID_REVNUM);            /* Finalize the MD5 checksum. */            rep.setHexDigest(SVNFileUtil.toHexDigest(myDigest));            /* Write out their cosmetic end marker. */            myTargetFile.write("ENDREP\n".getBytes());            myRevNode.setTextRepresentation(rep);            /* Write out the new node-rev information. */            FSWriter.putTxnRevisionNode(myRevNode.getId(), myRevNode, myReposRootDir);        }catch(SVNException svne){            throw new IOException(svne.getMessage());        }finally{            closeStreams();        }    }