我有一个不断增长的存储库,其中包含我使用TortoiseSVN维护的十几个项目(因为我对此完全陌生并且还不了解其中的内容).我必须拥有存储库的空间是有限的,所以我想备份它,然后删除一些旧版本.例如,如果项目的版本为50,我只想保留50,49,48.
Ric*_*ams 12
删除旧版本会破坏版本控制点,但您可以只删除要保留的修订版本,然后将它们放入新的仓库中,并删除旧版本.
svnadmin dump /path/to/current/repo -r48:50 > svn.dump
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < svn.dump
Run Code Online (Sandbox Code Playgroud)
或者使用svndumpfilter来包含/排除您想要的特定位等.在svn常见问题解答中还有一些关于删除的信息,您可能会发现它们很有用.
我可以删除旧版本或存储库以释放存储空间吗?
最简洁的答案是不。Subversion 和 CVS 的工作方式是它们保留完整的更改历史记录,包括删除的文件、二进制文件等。每个修订版都依赖于最后一个修订版,因此您不能只在中间某个地方删除修订版,否则您就损坏你的存储库。如果空间不足,您可以做两件事:1)删除模块,然后仅使用 HEAD 修订版重新创建它,这将清除所有旧修订版(但您将丢失提交历史记录)。2) 更好的选择 - 升级到更高的计划:-)。对于 Git 来说这不是一个问题,因为它对服务器端存储的要求要少得多。
如何从存储库的历史记录中完全删除文件?
在某些特殊情况下,您可能希望销毁文件或提交的所有证据。(也许有人不小心泄露了一份机密文档。)这并不那么容易,因为 Subversion 被故意设计为永远不会丢失信息。修订版是一棵不可变的树,相互构建。从历史记录中删除修订会导致多米诺骨牌效应,在所有后续修订中造成混乱,并可能使所有工作副本失效。
然而,该项目计划有一天实施 svnadmin obliterate 命令,该命令将完成永久删除信息的任务。(参见第 516 期。)
同时,您唯一的办法是 svnadmin 转储您的存储库,然后通过 svndumpfilter (不包括错误路径)将转储文件传输到 svnadmin load 命令中。有关详细信息,请参阅 Subversion 书的第 5 章。
引用自:
http://subversion.apache.org/faq.html#removal
http://codesion.com/benefits/faq.htm#deleterevisions
归档时间: |
|
查看次数: |
29813 次 |
最近记录: |