【问题标题】:Freeing up space in my SVN repository释放我的 SVN 存储库中的空间
【发布时间】:2015-07-11 17:18:15
【问题描述】:

我有一个托管在免费增值网站上的 SVN 存储库,具有最大存储库大小。当我接近这个容量时,我知道我签入的文件我知道我可以永久删除以释放磁盘空间。如何告诉 SVN 一个文件不仅可以删除,还可以删除它的历史记录?

【问题讨论】:

    标签: svn repository delete-file obliterate


    【解决方案1】:

    我认为 subversion 没有办法告诉不要对特定文件进行版本控制,或者至少在删除文件时忘记该文件。因为它违背了版本控制系统的目的。如果您有本地存储库,则可以通过一些调整来实现这一点。但是,如果没有对存储库的任何管理员访问权限,就不可能做到这一点。

    如果有帮助,rsvndump 是一个转储远程存储库的工具。有了这个,您将能够将存储库转储到您的本地系统。要删除不需要的文件,您可以使用此命令“cat xxx-svn-dump | svndumpfilter exclude $file > new-svn-dump”。虽然这样您可以减小存储库的大小,但您将无法使用此内容更新原始存储库。

    【讨论】:

      【解决方案2】:

      看看这个:

      http://subversion.apache.org/faq.html#removal 说:

      在某些特殊情况下,您 可能想销毁所有证据 文件或提交。 (也许有人 不小心犯了机密 文件。)这并不容易,因为 颠覆是故意设计的 永远不会丢失信息。修订是 以一棵树为基础的不可变树 其他。从中删除修订 历史会造成多米诺骨牌效应, 在随后的一切中制造混乱 修订和可能无效 所有工作副本。

      此 SO 答案中的可能解决方案:

      Delete file contents from SVN history

      【讨论】:

        【解决方案3】:

        您还可以修剪您的历史记录。假设您有 100 个修订,您可以保留最新的历史记录,例如 50 个修订。这也可能会减少您的 subversion 存储库的大小。

        svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
        # you can delete the old repo and then
        svnadmin create /path/to/new/repo
        svnadmin load /path/to/new/repo < newsvn.dump
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          • 2015-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多