可以过滤由svndamin dump
生成的SVN转储,因此它不会包含编码的二进制数据,只有文本deltas和数据?
我想拥有现有的大型SVN存储库的转储,但只有代码。我对存储的二进制文件不感兴趣。但是,二进制文件将使转储文件不必要地大。如何生成转储并排除二进制内容?
已经尝试并失败了,已经:
- 处理
svn log
差异是不切实际的。这是一个大的旧存储库,仅在短时间内获得差异需要很多时间,并且经常被卡住。 - 二进制文件散布在各个已知路径下,因此我不能使用
svndumpfilter
排除它们 - 除非有某种方法可以将此过滤器与正则表达式使用,例如*.jar
。
svndumpfilter是任何颠覆安装的一部分
svndumpfilter exclude
- 从转储流过滤带有给定前缀的节点。
从颠覆1.7开始,svndumpfilter可以选择将Path_prefix不仅视为显式子字符串,而且可以将其视为文件模式。
$ svndumpfilter exclude --pattern "*.OLD" < dumpfile > filtered-dumpfile
Excluding prefix patterns:
'/*.OLD'
我不知道这样做的库存工具。但是,如果您从这个perl模块开始:
其中的示例脚本之一(svndump_delpathfilter)可能非常接近您想要的内容。我在这个模块上的经验是,您可能必须修补一下它才能完成您想要的事情。
现在,我认为没有任何方法可以可靠地从文本文件中说出二进制文件,因为颠覆(最低级别)并不真正在乎。快速扫描我的存储库表明SVN:MIME-Type属性并不总是设置,我看不到其他指示性字段。因此,您必须通过名称检查或(以某种方式)尝试查看文件的内容(但我从未完成过后者)。