DebugLog.log("base props: " + props1); DebugLog.log("target props: " + props2); DebugLog.log("props diff: " + propsDiff);
    private void mergeSingleFile(SVNWCAccess wcAccess, SVNRepository repos1,            SVNRepository repos2, long revN, long revM, SVNMerger merger)            throws SVNException {        String name = wcAccess.getTargetName();        File tmpFile1 = wcAccess.getAnchor().getBaseFile(name, true);        File tmpFile2 = SVNFileUtil.createUniqueFile(tmpFile1.getParentFile(),                name, ".tmp");        Map props1 = new HashMap();        Map props2 = new HashMap();        OutputStream os1 = SVNFileUtil.openFileForWriting(tmpFile1);        OutputStream os2 = SVNFileUtil.openFileForWriting(tmpFile2);        try {            repos1.getFile("", revN, props1, os1);            repos2.getFile("", revM, props2, os2);        } finally {            SVNFileUtil.closeFile(os1);            SVNFileUtil.closeFile(os2);        }        String mimeType1 = (String) props1.get(SVNProperty.MIME_TYPE);        String mimeType2 = (String) props2.get(SVNProperty.MIME_TYPE);        props1 = filterProperties(props1, true, false, false);        props2 = filterProperties(props2, true, false, false);        Map propsDiff = computePropsDiff(props1, props2);        DebugLog.log("base props: " + props1);        DebugLog.log("target props: " + props2);        DebugLog.log("props diff: " + propsDiff);        SVNStatusType[] mergeResult = merger.fileChanged(wcAccess                .getTargetName(), tmpFile1, tmpFile2, revN, revM, mimeType1,                mimeType2, props1, propsDiff);        handleEvent(SVNEventFactory.createUpdateModifiedEvent(wcAccess,                wcAccess.getAnchor(), name, SVNNodeKind.FILE,                SVNEventAction.UPDATE_UPDATE, mimeType2, mergeResult[0],                mergeResult[1], SVNStatusType.LOCK_INAPPLICABLE),                ISVNEventHandler.UNKNOWN);    }