srcURL = validateURL(srcURL); dstURL = validateURL(dstURL); long srcRevNumber = getRevisionNumber(srcURL, srcRevision);
if (srcRevision == SVNRevision.WORKING && dstRevision == SVNRevision.WORKING) {  wc2wcCopy(srcPath, dstPath, force, move); } else if (srcRevision == SVNRevision.WORKING) {  if (move) { SVNErrorManager .error("svn: Only WC to WC or URL to URL move is supported"); } SVNWCAccess dstAccess = createWCAccess(srcPath); String dstURL = dstAccess.getTargetEntryProperty(SVNProperty.URL); if (dstPegRevision == null || !dstPegRevision.isValid()) { dstPegRevision = SVNRevision.parse(dstAccess .getTargetEntryProperty(SVNProperty.REVISION)); } dstURL = getURL(dstURL, dstPegRevision, SVNRevision.HEAD); return wc2urlCopy(srcPath, dstURL, commitMessage); } else if (dstRevision == SVNRevision.WORKING) {  if (move) { SVNErrorManager .error("svn: Only WC to WC or URL to URL move is supported"); } SVNWCAccess srcAccess = createWCAccess(srcPath); String srcURL = srcAccess.getTargetEntryProperty(SVNProperty.URL); if (srcPegRevision == null || !srcPegRevision.isValid()) { srcPegRevision = SVNRevision.parse(srcAccess .getTargetEntryProperty(SVNProperty.REVISION)); } long srcRevNumber = getRevisionNumber(srcPath, srcRevision); srcURL = getURL(srcURL, srcPegRevision, SVNRevision .create(srcRevNumber)); url2wcCopy(srcURL, srcRevNumber, dstPath); } else {  SVNWCAccess srcAccess = createWCAccess(srcPath); SVNWCAccess dstAccess = createWCAccess(srcPath);
    public SVNCommitInfo doCopy(String srcURL, SVNRevision srcPegRevision,            SVNRevision srcRevision, String dstURL, SVNRevision dstPegRevision,            boolean move, String commitMessage) throws SVNException {        if (srcRevision == null) {            srcRevision = SVNRevision.HEAD;        }        if (srcPegRevision == null) {            srcPegRevision = SVNRevision.UNDEFINED;        }        if (dstPegRevision == null) {            dstPegRevision = SVNRevision.UNDEFINED;        }        srcURL = validateURL(srcURL);        dstURL = validateURL(dstURL);        long srcRevNumber = getRevisionNumber(srcURL, srcRevision);        srcURL = getURL(srcURL, srcPegRevision, SVNRevision                .create(srcRevNumber));        dstURL = getURL(dstURL, dstPegRevision, SVNRevision.HEAD);        return url2urlCopy(srcURL, srcRevNumber, dstURL, commitMessage, move);    }