如何删除旧的SVN修订版

时间:2010-12-03 21:46:18

标签: svn disk

我们的SVN存储库接近0.5 GB。我们的生产系统中的代码数量远远不够。

是否可以删除旧版本。我尝试使用起始修订号的svn dump,但无济于事。我无法将其导入干净的SVN存储库。

我们不需要超过一年的历史。

有什么想法吗?

2 个答案:

答案 0 :(得分:13)

您可以删除或更好地“缩小”SVN存储库的历史记录。假设您有1000个修订版,并且您希望缩小到只有r950-r10​​00的修订版。您可以执行以下操作:

svnadmin dump /path/to/current/repo -r950:1000 > small_svn.dump
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < small_svn.dump

然而,有两点需要注意:

第一:所有的标签和分支都将作为独立副本结束,因此将占用比以前更多的空间(这可能会在更大的存储库中结束,您必须尝试) - 您可以但是,使用svndumpfilter删除标记和分支,而不是需要旧的存储库来获取这些标记/分支的信息。

第二名:如果您的分支机构停留在新的存储库中,则所有mergeinfo将显示错误的修订版本,因为您的新存储库再次以版本0开始,并且所有分支在版本历史记录中都已消失(由于pt。 1)

更好的解决方案:

  • 找到负责存储库增长的修订版(在存储库数据存储中搜索大文件,通常位于:/path/to/repo/db/revs/[0...X]
  • 检查这些修订的日志历史记录并找到负责的文件。
  • 如果您不需要这些文件,请通过 svndumpfilter 删除它们。
  • 教您的用户如何避免提交不必要的大文件。

否则你将不得不在几周内收缩你的存储库!

答案 1 :(得分:0)

你的企业如何能够浪费时间在这上面而不是只购买更大的磁盘,移动东西,然后继续? 1TB相当于1-2个工时,加上移动数据和交换磁盘所需的时间。