我从svndumpfilter得到了奇怪的结果 – 我需要在我们的仓库中删除24个2个特定文件的实例,分散在许多分支中.我正在运行命令,如下所示:
例如
type dumpfile | svndumpfilter exclude foo1/bar.dat foo2/bar.dat > filtered_dumpfile
但是,似乎过滤的转储文件没有按预期删除所有节点,只是删除2.我已经通过在两个转储文件上使用svndumptool diff确认了这一点,并且在重建repo之后,排除的文件仍然存在.
我确定我没有错过任何这些文件的实例,因为我使用svnlook树来定位repo中的所有路径.此外,我已确认在命令和转储文件中前导斜杠是一致的.
有人有主意吗?
最佳答案 最近使用新方法更新了与该问题相关的
Apache Subversion FAQ entry,该方法允许您过滤存储库历史记录.复杂的存储库历史过滤可能比使用svndumpfilter方法更方便.
在配置path-based authorization rules拒绝对存储库历史记录中需要过滤的任何路径的读取访问权限后,可以使用svnsync工具复制存储库.
与svndumpfilter不同,svnsync会自动将具有不可读源路径的复制操作转换为正常添加,这在需要过滤涉及复制操作的历史记录时非常有用.