【问题标题】:How to restrict the number of history kept by svn?如何限制svn保存的历史数量?
【发布时间】:2010-04-21 05:45:10
【问题描述】:

例如,我只想要某个分支或项目的 3 条记录。

非常感谢!

更新: 谢谢各位的回答。 也许这不是一个好问题。我有一个框架回购和几个引用该框架的项目。我通常会继续做一个项目,有时我需要更新框架。但是,我不想因为我的框架更新而影响任何其他项目,尽管我可能没有时间再次更新每个项目的框架更改。所以我考虑的解决方案是在每个项目中检查框架.dll,以便每个项目都可以缓存一个版本的dll并且它们不会中断。但是,我不希望我的 svn 保留很多 dll 签入,所以我提出了上述问题..... 我只是想我应该在每个项目中保留一份框架源代码的副本,而不是 dll。一旦我决定使用更新的框架,我就可以合并到每个项目的框架副本。听起来更好。

【问题讨论】:

  • 这是不可能的。按照设计,Subversion 会永久保存一切的历史。为什么你只想要三个?

标签: svn history svnadmin svndump


【解决方案1】:

根据您的更新,您应该查看 svn:externals 以从它将使用框架(dll 或可能是源代码)的每个项目中引用框架区域。另一方面,您可以存储二进制文件,SVN 也将使用增量。所以应该不是空间问题。

【讨论】:

  • svn:externals 非常适合我的情况。我可以使用它来让我的项目始终保持最新或不断进行某些修订。此外,我仍然可以选择在我的一些项目中创建一个框架的分支。酷!
【解决方案2】:

很遗憾没有。 SVN 被设计成一个信息堡垒。您不能将其限制为 x 的修订数量。

这也是您不能完全或轻松地从 SVN 中完全删除任何内容的原因。他们正在寻求推出 obliterate 命令来处理不必转储存储库来删除某些内容(如从存储库中完全删除),但它已经进行了相当长的一段时间。在这里查看more information

【讨论】:

    【解决方案3】:

    SVN 没有任何内置的方法来做到这一点,但是如果你真的想要(不知道你为什么会这样做)你可以定期运行以下命令(在这个例子中,我假设你的 HEAD 是修订版 200,因此之前是 3是 197):

    svnadmin dump /path/to/repo -r196:200 > svn.dump
    rm -rf /path/to/repo
    svnadmin create /path/to/repo
    svnadmin load /path/to/repo < svn.dump
    

    这将执行整个存储库,您不能对单个项目执行此操作。

    【讨论】:

      【解决方案4】:

      您可以使用svndumpfilter 从存储库转储中删除特定项目。

      【讨论】:

        猜你喜欢
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        • 2018-01-06
        • 1970-01-01
        • 2012-03-12
        • 2018-06-07
        相关资源
        最近更新 更多