我们以前每晚都会备份完整的 SVN 转储,但现在存储库变得太大了。
如果我愿意在两周后切断修订历史,我该如何编写批处理脚本来执行此转储?
我意识到svnadmin dump
可以采用修订范围,但我不确定如何编写脚本来获取与过去某个时间(例如 14 天前)相对应的修订号码。
答案1
帮助文本没有显示它,但您可以使用日期或几个关键字指定修订范围,就像使用普通命令一样svn
。要转储从上个月到当前 HEAD 的提交:
svnadmin dump /path/to/repo/ -r {2011-05-20}:HEAD > /path/to/dumpfile
请记住,这种方法意味着您需要确保您的快照捕获每个修订版本并且不会重叠,因为转储文件不包含明确的修订版本编号信息。svnadmin load
如果有任何缺失或重叠,恢复方法只会重播并重新编号您的修订版本。
我应该提到svnadmin hotcopy
备份选项,因为它们比转储快得多。(如果您需要的是文本转储,您可以从热拷贝中进行常规的离线转储)。