DebugLog.log("base URL is: " + baseURL);
    public void doLog(File[] paths, SVNRevision startRevision,            SVNRevision endRevision, boolean stopOnCopy, boolean reportPaths,            long limit, ISVNLogEntryHandler handler) throws SVNException {        if (paths == null || paths.length == 0) {            return;        }        if (startRevision.isValid() && !endRevision.isValid()) {            endRevision = startRevision;        } else if (!startRevision.isValid()) {            startRevision = SVNRevision.BASE;            if (!endRevision.isValid()) {                endRevision = SVNRevision.create(0);            }        }        String[] urls = new String[paths.length];        for (int i = 0; i < paths.length; i++) {            File path = paths[i];            SVNEntry entry = getEntry(path);            if (entry == null) {                SVNErrorManager.error("svn: '" + path + "' is not under version control");                return;            }            if (entry.getURL() == null) {                SVNErrorManager.error("svn: '" + path + "' has not URL");            }            urls[i] = entry.getURL();        }        if (urls.length == 0) {            return;        }        Collection targets = new TreeSet();        String baseURL = SVNPathUtil.condenceURLs(urls, targets, true);        if (baseURL == null || "".equals(baseURL)) {            SVNErrorManager.error("svn: Entries belongs to different repositories");        }        if (targets.isEmpty()) {            targets.add("");        }        SVNRepository repos = createRepository(baseURL);        String[] targetPaths = (String[]) targets.toArray(new String[targets.size()]);        DebugLog.log("base URL is: " + baseURL);        for (int i = 0; i < targetPaths.length; i++) {            targetPaths[i] = PathUtil.decode(targetPaths[i]);            DebugLog.log("target path: " + targetPaths[i]);        }        if (startRevision.isLocal() || endRevision.isLocal()) {            for (int i = 0; i < paths.length; i++) {                long startRev = getRevisionNumber(paths[i], baseURL, repos,                        startRevision);                long endRev = getRevisionNumber(paths[i], baseURL, repos,                        endRevision);                DebugLog.log("calling log for " + startRev + ":" + endRev);                repos.log(targetPaths, startRev, endRev, reportPaths,                        stopOnCopy, limit, handler);            }        } else {            long startRev = getRevisionNumber(null, baseURL, repos,                    startRevision);            long endRev = getRevisionNumber(null, baseURL, repos, endRevision);            DebugLog.log("calling log for " + startRev + ":" + endRev);            repos.log(targetPaths, startRev, endRev, reportPaths, stopOnCopy,                    limit, handler);        }    }