SVNDebugLog.getDefaultLog().info("diff wc:wc " + revision1 + ":" + revision2);
    private void doDiffWCWC(File path1, SVNRevision revision1, File path2, SVNRevision revision2, boolean recursive, boolean useAncestry,            OutputStream result) throws SVNException {        SVNDebugLog.getDefaultLog().info("diff wc:wc " + revision1 + ":" + revision2);        if (!path1.equals(path2) || !(revision1 == SVNRevision.BASE && revision2 == SVNRevision.WORKING)) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.UNSUPPORTED_FEATURE, "Only diffs between a path's text-base " +                                    "and its working files are supported at this time (-rBASE:WORKING)");            SVNErrorManager.error(err);        }                SVNWCAccess wcAccess = createWCAccess();        try {            SVNAdminAreaInfo info = wcAccess.openAnchor(path1, false, recursive ? SVNWCAccess.INFINITE_DEPTH: 0);            SVNEntry entry = wcAccess.getEntry(path1, false);            if (entry == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.ENTRY_NOT_FOUND, "''{0}'' is not under version control", path1);                SVNErrorManager.error(err);            }            long rev = getRevisionNumber(revision1, null, path1);            AbstractDiffCallback callback = new SVNDiffCallback(info, getDiffGenerator(),                     rev, -1, result);            SVNDiffEditor editor = new SVNDiffEditor(wcAccess, info, callback, useAncestry, false, false, recursive);            try {                editor.closeEdit();            } finally {                editor.cleanup();            }        } finally {            wcAccess.close();        }    }