SVNDebugLog.getDefaultLog().info("merged: " + mergeResult + " (" + myIsDryRun + ")");
    public SVNStatusType[] fileChanged(String path, File file1, File file2, long revision1, long revision2, String mimeType1, String mimeType2, Map originalProperties, Map diff) throws SVNException {        boolean needsMerge = true;        File mergedFile = getFile(path);        SVNAdminArea dir = retrieve(mergedFile.getParentFile(), myIsDryRun);        if (dir == null) {            return new SVNStatusType[] {SVNStatusType.MISSING, SVNStatusType.MISSING};        }        SVNStatusType[] result = new SVNStatusType[] {SVNStatusType.UNCHANGED, SVNStatusType.UNCHANGED};        SVNEntry entry = getWCAccess().getEntry(mergedFile, false);        SVNFileType fileType = null;        if (entry != null) {            fileType = SVNFileType.getType(mergedFile);        }        if (entry == null || fileType != SVNFileType.FILE) {            return new SVNStatusType[] {SVNStatusType.MISSING, SVNStatusType.MISSING};        }        if (diff != null && !diff.isEmpty()) {            result[1] = propertiesChanged(path, originalProperties, diff);            SVNDebugLog.getDefaultLog().info("prop merge result: " + result[1]);        }         String name = mergedFile.getName();        if (file1 != null) {            boolean textModified = dir.hasTextModifications(name, false);            if (!textModified &&                     (SVNProperty.isBinaryMimeType(mimeType1) || SVNProperty.isBinaryMimeType(mimeType2))) {                boolean same = SVNFileUtil.compareFiles(!myIsAddNecessitatedMerge ? file1 : file2, mergedFile, null);                if (same) {                    if (!myIsDryRun && !myIsAddNecessitatedMerge) {                        SVNFileUtil.rename(file2, mergedFile);                    }                    result[0] = SVNStatusType.CHANGED;                    needsMerge = false;                }            }            if (needsMerge) {                String localLabel = ".working";                String baseLabel = ".merge-left.r" + revision1;                String latestLabel = ".merge-right.r" + revision2;                SVNDebugLog.getDefaultLog().info("merging: " + name + " from " + file1 + " and " + file2);                SVNStatusType mergeResult = dir.mergeText(name, file1, file2, localLabel, baseLabel, latestLabel, false, myIsDryRun);                SVNDebugLog.getDefaultLog().info("merged: " + mergeResult + " (" + myIsDryRun + ")");                if (mergeResult == SVNStatusType.CONFLICTED || mergeResult == SVNStatusType.CONFLICTED_UNRESOLVED) {                    result[0] = mergeResult;                } else if (textModified) {                    result[0] = SVNStatusType.MERGED;                } else if (mergeResult == SVNStatusType.MERGED) {                    result[0] = SVNStatusType.CHANGED;                } else {                    result[0] = SVNStatusType.UNCHANGED;                }            }        } else {            SVNDebugLog.getDefaultLog().info("no file for merge: " + mergedFile);        }        return result;    }