@Override protected void ensureArgumentsAreValid() throws SVNException { super.ensureArgumentsAreValid(); //here we assume we have one target SVNRevision resolvedPegRevision; SVNRevision resolvedRevision; if (getFirstTarget().getPegRevision() == SVNRevision.UNDEFINED) { resolvedPegRevision = getFirstTarget().getResolvedPegRevision(SVNRevision.HEAD, SVNRevision.WORKING); if (getRevision() == null || getRevision() == SVNRevision.UNDEFINED) { resolvedRevision = getFirstTarget().isURL() ? SVNRevision.HEAD : SVNRevision.BASE; } else { resolvedRevision = getRevision(); } } else { resolvedPegRevision = getFirstTarget().getPegRevision(); if (getRevision() == null || getRevision() == SVNRevision.UNDEFINED) { resolvedRevision = resolvedPegRevision; } else { resolvedRevision = getRevision(); } } setRevision(resolvedRevision); setSingleTarget( getFirstTarget().isURL() ? SvnTarget.fromURL(getFirstTarget().getURL(), resolvedPegRevision) : SvnTarget.fromFile(getFirstTarget().getFile(), resolvedPegRevision)); }
/** * Creates cat operation. * @return new <code>SvnCat</code> object */ public SvnCat createCat() { return new SvnCat(this); }
cat.setSingleTarget(SvnTarget.fromURL(url, pegRevision)); cat.setRevision(revision); cat.setExpandKeywords(expandKeywords); cat.setOutput(dst); cat.run();
@Override protected SVNProperties run() throws SVNException { SVNWCClient16 client = new SVNWCClient16(getOperation().getRepositoryPool(), getOperation().getOptions()); final SVNProperties properties = new SVNProperties(); if (getOperation().hasRemoteTargets()) { client.doGetFileContents( getOperation().getFirstTarget().getURL(), getOperation().getFirstTarget().getResolvedPegRevision(), getOperation().getRevision(), getOperation().isExpandKeywords(), properties, getOperation().getOutput()); } else { client.doGetFileContents( getOperation().getFirstTarget().getFile(), getOperation().getFirstTarget().getResolvedPegRevision(), getOperation().getRevision(), getOperation().isExpandKeywords(), properties, getOperation().getOutput()); } return properties; }
@Override protected SVNProperties run() throws SVNException { SVNRevision revision = getOperation().getRevision() == null || !getOperation().getRevision().isValid() ? SVNRevision.HEAD : getOperation().getRevision(); SvnTarget target = getOperation().getFirstTarget(); if (nodeKind == SVNNodeKind.DIR) { SVNErrorMessage err = SVNErrorMessage.create( SVNErrorCode.CLIENT_IS_DIRECTORY, "URL ''{0}'' refers to a directory", getOperation().getFirstTarget().getURL()); SVNErrorManager.error(err, SVNLogType.WC); if (!getOperation().isExpandKeywords()) { repos.getFile("", revNumber, properties, new SVNCancellableOutputStream(getOperation().getOutput(), this)); } else { repos.getFile("", revNumber, properties, null); mimeType, repos.getLocation().toString(), getOperation().getOptions()); String keywords = properties.getStringValue(SVNProperty.KEYWORDS); String eol = properties.getStringValue(SVNProperty.EOL_STYLE); Map<String, byte[]> keywordsMap = SVNTranslator.computeKeywords( keywords, getOperation().isExpandKeywords() ? repos.getLocation().toString() : null, getOperation().isExpandKeywords() ? repos.getRepositoryRoot(true).toString() : null, author, cmtDate, cmtRev, getOperation().getOptions());
SVNRevision revision = getOperation().getRevision(); SVNProperties properties; InputStream source = null; if (keywords != null && getOperation().isExpandKeywords()) { Structure<NodeInfo> info = context.getDb().readInfo(getFirstTarget(), NodeInfo.changedRev, NodeInfo.changedAuthor, NodeInfo.reposRootUrl); SVNURL url = context.getNodeUrl(getFirstTarget()); keywordsMap = SVNTranslator.computeKeywords(keywords, url.toString(), reposRootUrl == null ? null : reposRootUrl.toString(), author, date, rev, getOperation().getOptions()); source = new SVNTranslatorInputStream(source, SVNTranslator.getEOL(eolStyle, getOperation().getOptions()), false, keywordsMap, true); if (source != null && getOperation().getOutput() != null) { try { SVNTranslator.copy(source, getOperation().getOutput()); } catch (IOException e) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e);
cat.setSingleTarget(SvnTarget.fromFile(path, pegRevision)); cat.setRevision(revision); cat.setExpandKeywords(expandKeywords); cat.setOutput(dst); cat.run();
public Map<String, byte[]> streamFileContent(String path, Revision revision, Revision pegRevision, boolean expandKeywords, boolean returnProps, OutputStream stream) throws ClientException { beforeOperation(); try { getEventHandler().setPathPrefix(getPathPrefix(path)); SvnCat cat = svnOperationFactory.createCat(); cat.setSingleTarget(getTarget(path, pegRevision)); cat.setRevision(getSVNRevision(revision)); cat.setExpandKeywords(true); cat.setOutput(stream); cat.setExpandKeywords(expandKeywords); SVNProperties properties = cat.run(); return returnProps ? getProperties(properties) : null; } catch (SVNException e) { throw getClientException(e); } finally { afterOperation(); } }