String svnOutFile = fileToSVNPath(outFile, true);
String svnOutFile = fileToSVNPath(outFile, false);
    public void diff(File oldPath, SVNRevision oldPathRevision,                     File newPath, SVNRevision newPathRevision,                     File outFile, boolean recurse) throws SVNClientException {        try {            notificationHandler.setCommand(ISVNNotifyListener.Command.DIFF);                            if (oldPath == null)                oldPath = new File(".");            if (newPath == null)                newPath = oldPath;            if (oldPathRevision == null)                oldPathRevision = SVNRevision.BASE;            if (newPathRevision == null)                newPathRevision = SVNRevision.WORKING;                        // we don't want canonical file path (otherwise the complete file name            // would be in the patch). This way the user can choose to use a relative            // path            String oldTarget = fileToSVNPath(oldPath, false);            String newTarget = fileToSVNPath(newPath, false);            String svnOutFile = fileToSVNPath(outFile, true);                        String commandLine = "diff ";            if ( (oldPathRevision.getKind() != Revision.Kind.base) ||                 (newPathRevision.getKind() != Revision.Kind.working) )            {                commandLine += "-r "+oldPathRevision.toString();                if (newPathRevision.getKind() != Revision.Kind.working)                    commandLine+= ":"+newPathRevision.toString();                commandLine += " ";                     }            if (!oldPath.equals(new File(".")))                commandLine += "--old "+oldTarget+" ";            if (!newPath.equals(oldPath))                commandLine += "--new "+newTarget+" ";                        notificationHandler.logCommandLine(commandLine);			notificationHandler.setBaseDir(SVNBaseDir.getBaseDir(new File[]{oldPath,newPath}));            svnClient.diff(oldTarget,JhlConverter.convert(oldPathRevision),newTarget,JhlConverter.convert(newPathRevision), svnOutFile, recurse);        } catch (ClientException e) {            notificationHandler.logException(e);            throw new SVNClientException(e);                    }    }