我需要从命令行向 svn:ignore 添加一些文件。
但我需要这样做而不删除 svn:ignore 属性的先前值。如果我使用命令:
svn propset svn:ignore "*.jar" .
它设置了正确的忽略值,但删除了每个先前的值,这不是我想要的。
Usingsvn propedit
不适合我,因为我需要从 Ant 脚本中执行它。
编辑:可移植性对我来说不是问题(我必须在 Windows 上工作),但我无法安装第三方 Ant 库,我只有 Subversion 命令行。
提前感谢您的任何提示。
最终编辑:对于感兴趣的人,我以这种方式在 Ant 脚本中实现了建议的解决方案:
<!-- Read current values and write them to a file -->
<exec executable="svn" output="${build}/current-props-file">
<arg value="propget" />
<arg value="svn:ignore" />
<arg value="." />
</exec>
<!-- Reload the file, stripping away the value possibly already present to avoid duplicate -->
<loadfile srcfile="${build}/current-props-file" property="cleaned-props">
<filterchain>
<linecontains negate="true">
<contains value=".jar" />
</linecontains>
</filterchain>
</loadfile>
<echo message="cleaned-props: ${cleaned-props}" />
<!-- Create file with final values to set -->
<echo file="${build}/cleaned-props-file" message="${cleaned-props}*.jar" />
<!-- Set property values -->
<exec executable="svn">
<arg value="propset" />
<arg value="svn:ignore" />
<arg value="--file" />
<arg value="${build}/cleaned-props-file" />
<arg value="." />
</exec>