我从svndumpfilter得到奇怪的结果-我需要消除我们仓库中2个特定文件的24个实例,这些实例分散在许多分支中。我正在像这样记录运行命令:

例如

type dumpfile | svndumpfilter exclude foo1/bar.dat foo2/bar.dat  > filtered_dumpfile


但是,似乎经过筛选的转储文件并未按预期方式删除所有节点,而是仅删除了2个节点。我已通过在两个转储文件上使用svndumptool diff进行了确认,并在重建存储库后仍存在被排除的文件。

我确定我没有错过这些文件的任何实例,因为我已经使用svnlook树定位了仓库中的所有路径。另外,我已经确认命令和转储文件中的斜杠是一致的。

有人有主意吗?

最佳答案

与问题相关的Apache Subversion FAQ entry最近已通过一种新方法进行了更新,该方法可以过滤存储库历史记录。复杂的存储库历史记录筛选可能比svndumpfilter方法更方便。

配置path-based authorization rules后,您可以使用svnsync工具复制存储库,以拒绝对需要从存储库历史记录中过滤掉的任何路径的读取访问。

svndumpfilter不同,svnsync会将具有不可读源路径的复制操作自动转换为常规添加,这在需要过滤涉及复制操作的历史记录时非常有用。

08-16 05:43