dstPath.setLastModified(TimeUtil.parseDate(date).getTime());
dstPath.setLastModified(SVNTimeUtil.parseDate(date).getTime());
    private void copyVersionedFile(File dstPath, SVNDirectory dir,            String fileName, SVNRevision revision, boolean force, String eol)            throws SVNException {        if (!force && dstPath.exists()) {            SVNErrorManager.error("svn: '" + dstPath + "' already exists");        }        SVNFileUtil.deleteAll(dstPath);        Map keywordsMap = null;        SVNProperties props = revision == SVNRevision.BASE ? dir                .getBaseProperties(fileName, false) : dir.getProperties(                fileName, false);        SVNEntry entry = dir.getEntries().getEntry(fileName, true);        String keywords = props.getPropertyValue(SVNProperty.KEYWORDS);        String date = entry.getCommittedDate();        byte[] eols = eol != null ? SVNTranslator.getEOL(eol) : null;        if (keywords != null) {            String author = entry.getAuthor();            String rev = Long.toString(entry.getCommittedRevision());            if (revision != SVNRevision.BASE) {                boolean modified = dir.hasTextModifications(fileName, false);                if (modified) {                    author = "(local)";                    rev += "M";                }            }            keywordsMap = SVNTranslator.computeKeywords(keywords, entry                    .getURL(), author, entry.getCommittedDate(), rev);        }        if (eols == null) {            eol = props.getPropertyValue(SVNProperty.EOL_STYLE);            eols = SVNTranslator.getWorkingEOL(eol);        }        boolean special = props.getPropertyValue(SVNProperty.SPECIAL) != null;        boolean executable = props.getPropertyValue(SVNProperty.EXECUTABLE) != null;        File srcFile = revision == SVNRevision.BASE ?                 dir.getBaseFile(fileName, false) : dir.getFile(fileName);        SVNFileType fileType = SVNFileType.getType(srcFile);        if (!fileType.isFile()) {            SVNErrorManager.error("svn: '" + srcFile + "' is not a file");        }        if (fileType == SVNFileType.SYMLINK && revision == SVNRevision.WORKING) {            // base will be translated OK, but working not.            File tmpBaseFile = dir.getBaseFile(fileName, true);            try {                SVNTranslator.translate(srcFile, tmpBaseFile, eols,                        keywordsMap, special, false);                SVNTranslator.translate(tmpBaseFile, dstPath, eols,                        keywordsMap, special, true);            } finally {                tmpBaseFile.delete();            }        } else {            SVNTranslator.translate(srcFile, dstPath, eols, keywordsMap,                    special, true);        }        if (executable) {            SVNFileUtil.setExecutable(dstPath, true);        }        if (!special && date != null) {            dstPath.setLastModified(TimeUtil.parseDate(date).getTime());        }    }