public String generateDelta(ISVNEditor target) throws SVNException {
public String generateDelta(String commitPath, ISVNEditor target) throws SVNException {
    public String generateDelta(ISVNEditor target) throws SVNException {        if (!isContentsModified() && !isScheduledForAddition()) {            return null;        }        String digest = null;        File file = getRootEntry().getWorkingCopyFile(this);        if (file.exists()) {            target.applyTextDelta(null);            String eolType = getPropertyValue(SVNProperty.EOL_STYLE);            boolean sendAsIs = isBinary();// || eolType == null;            File tmpFile = null;            if (!sendAsIs) {                if (SVNProperty.EOL_STYLE_NATIVE.equals(eolType)) {                    eolType = SVNProperty.EOL_STYLE_LF;                }                tmpFile = getRootEntry().createTemporaryFile(this);                // prepare file as to be sent                Map keywords = computeKeywords(false);                FSUtil.copy(file, tmpFile, eolType, keywords, null);            }            ISVNDeltaGenerator generator;            if (isBinary() || isScheduledForAddition() || DebugLog.isGeneratorDisabled() ||                    !getAdminArea().hasBaseFile(this)) {                generator = new SVNAllDeltaGenerator();            } else {                generator = new SVNSequenceDeltaGenerator();            }                        File digestFile = getRootEntry().createTemporaryFile(this);            digest = FSUtil.copy(tmpFile != null ? tmpFile : file, digestFile, null, null, createDigest());            SVNRAFileData workFile = new SVNRAFileData(tmpFile != null ? tmpFile : file, true);            SVNRAFileData baseFile = generator instanceof SVNSequenceDeltaGenerator ?                     new SVNRAFileData(getAdminArea().getBaseFile(this), true) : null;            try {                generator.generateDiffWindow(target, workFile, baseFile);            } finally {                try {                    if (baseFile != null) {                        baseFile.close();                    }                } catch (IOException e2) {                }                try {                    workFile.close();                } catch (IOException e1) {                }                if (tmpFile != null) {                    tmpFile.delete();                }                if (digestFile != null) {                    digestFile.delete();                }            }        }        return digest;    }