【问题标题】:problems with svndumpfilter not excluding pathssvndumpfilter 的问题不排除路径
【发布时间】:2012-01-26 09:01:12
【问题描述】:

我从 svndumpfilter 中得到了奇怪的结果——我需要在我们的 repo 中删除 2 个特定文件的 24 个实例,这些文件分散在许多分支中。我正在运行记录的命令,如下所示:

例如

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

但是,过滤后的转储文件似乎并未按预期删除所有节点,而仅删除了 2 个。我已通过在两个转储文件上使用 svndumptool diff 确认了这一点,并且在重建存储库后,排除的文件仍然存在。

我确定我没有错过这些文件的任何实例,因为我使用 svnlook 树来定位 repo 中的所有路径。我还确认命令和转储文件中的前导斜杠是一致的。

有人有什么想法吗?

【问题讨论】:

  • 我也有同样的问题。按照svnbook.red-bean.com/en/1.7/… 中的说明,这应该是从我的存储库中删除四个文件夹,但它们仍然存在。我认为这可能是引用问题,因为有些文件名中有空格,我还检查了前导斜杠。
  • 如果有帮助,您可以接受和/或投票赞成答案。谢谢!

标签: svn svnadmin svnsync svndumpfilter


【解决方案1】:

您可以尝试如下操作,也许会有所帮助:

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

或者这样:

svndumpfilter exclude `cat filterlist.txt` < old.dump > new.dump

【讨论】:

    【解决方案2】:

    Apache Subversion FAQ entry 与问题相关,最近更新了一种新方法,允许您过滤存储库历史记录。复杂的存储库历史过滤可能比svndumpfilter 方法更方便。

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

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

    【讨论】:

      【解决方案3】:

      您可以在文件中添加所有前缀并使用--targets FILE 选项而不是单独的排除|包含

      【讨论】:

        【解决方案4】:

        我需要删除的文件是历史上的最后一次签入。因此,我能够使用 svnadmin dump 来转储损坏的转速之前的所有转速。

        这类似于本页中描述的内容:http://robmayhew.com/delete-parts-of-subversion-history/

        我需要摆脱 8195 版的错误签入,所以我运行了如下内容:

        svnadmin dump /path/to/current/repo -r0:8194 > svn.dump
        svnadmin create /path/to/new/repo
        svnadmin load /path/to/new/repo < svn.dump
        

        这行得通,除了我签出的工作副本中仍然有来自 8195 的信息。当我尝试更新时,这会导致错误,因为我的工作副本认为它在服务器中不存在。

        我必须进行一次小型签出并在某处签入一个微不足道的更改以使存储库版本恢复到 8195,然后我可以在删除受错误签入影响的文件后清理并更新我的工作副本。这在 linux 中使用 svn 有效。

        一位同事在 windows 中使用 svn,而 Tortoise svn 对这个存储库的修复非常困难。显然,它保留了最新修订的内部缓存,并且当它更新工作副本时,它会从其缓存中恢复“坏”修订文件。我想我将不得不再次检查所有内容并构建一个新的工作副本以使其正确。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-13
          • 2013-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多