使用Ant回显SvnAnt错误消息的一行

问题描述:

如果SvnAnt <export>出错,则Ant <loadfile>任务将在控制台上显示所有内容.

If the SvnAnt <export> has an error, the Ant <loadfile> task will show all of it on the console.

<svn refid="svn.settings" logFile="C:/Logfile.log">
    <export destpath="LOCAL Location" srcUrl="Source Url" />
</svn>
<loadfile property="svnLog" srcFile="C:/Logfile.log"/>
<echo>${svnLog}</echo>

[echo] <Export> started ...
[echo] export --no-auth-cache -r HEAD https://lbsm8-svn.path.local/svn/DB_Scripts/SCRIPTS/Reporting/FTR/ORAX/ftr1241000000430105_orax.pbd D:\Copyof\anttt\RET\ORA
[echo] svn: E170000: URL'https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng'
[echo] <Export> failed.
[echo] the execution failed for some reason. cause: Can't export
[echo]  at org.tigris.subversion.svnant.commands.SvnCommand.ex(Unknown Source)
[echo]  at org.tigris.subversion.svnant.commands.Export.execute(Unknown Source)
[echo]  at org.tigris.subversion.svnant.commands.SvnCommand.executeCommand(Unknown Source)
[echo]  at org.tigris.subversion.svnant.SvnTask.executeImpl(Unknown Source)
[echo]  at org.tigris.subversion.svnant.SvnTask.execute(Unknown Source)
[echo]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)

我只能从日志文件中显示它,而忽略其余的吗?

Can I only show this from the logfile and disregard the rest?

[echo] svn: E170000: URL'https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng'

可以为<loadfile>提供<linecontains> FilterChain ,以便仅从文件中提取所需的行:

The <linecontains> FilterChain can be given to <loadfile> to extract just the line you want from the file:

<loadfile property="svnLog" srcFile="C:/Logfile.log">
    <filterchain>
        <linecontains>
            <contains value="svn: E170000:"/>
        </linecontains>
    </filterchain>
</loadfile>
<echo>${svnLog}</echo>

输出

[echo] svn: E170000: URL'https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng'