wcAccess.open(!dryRun, recusrsive);  SVNEntry targetEntry = wcAccess.getTargetEntry(); if (targetEntry == null) { SVNErrorManager.error("svn: '" + dstPath + "' is not under version control");
try { wcAccess.open(!dryRun, recusrsive);  SVNEntry targetEntry = wcAccess.getTargetEntry(); if (targetEntry == null) { SVNErrorManager.error("svn: '" + dstPath + "' is not under version control"); } if (targetEntry.isFile()) { doMergeFile(url1, path1, revision1, url2, path2, revision2, SVNRevision.UNDEFINED, wcAccess, force, dryRun); } else if (targetEntry.isDirectory()) { doMerge(url1, path1, revision1, url2, path2, revision2, SVNRevision.UNDEFINED, wcAccess, recusrsive, useAncestry, force, dryRun); } } finally { wcAccess.close(!dryRun);
    public void doMerge(File path1, SVNRevision revision1, File path2, SVNRevision revision2, File dstPath, boolean recusrsive, boolean useAncestry,             boolean force, boolean dryRun) throws SVNException {        SVNURL url1 = getURL(path1);        if (url1 == null) {            SVNErrorManager.error("svn: '" + path1 + "' has no URL");        }        SVNURL url2 = getURL(path2);        if (url2 == null) {            SVNErrorManager.error("svn: '" + path2 + "' has no URL");        }        SVNWCAccess wcAccess = createWCAccess(dstPath);        wcAccess.open(!dryRun, recusrsive);                SVNEntry targetEntry = wcAccess.getTargetEntry();        if (targetEntry == null) {            SVNErrorManager.error("svn: '" + dstPath + "' is not under version control");        }        if (targetEntry.isFile()) {            doMergeFile(url1, path1, revision1, url2, path2, revision2, SVNRevision.UNDEFINED, wcAccess, force, dryRun);        } else if (targetEntry.isDirectory()) {            doMerge(url1, path1, revision1, url2, path2, revision2, SVNRevision.UNDEFINED, wcAccess, recusrsive, useAncestry, force, dryRun);        }        wcAccess.close(!dryRun);    }