我经常听说拥有 SVN 存储库并不会取消对备份的需求。
这种备份是如何完成的?我的意思是存储库会随着时间的推移而膨胀,不是吗?那么我每次都将其作为一个整体进行备份还是我该怎么做?
进行此类备份的最简单方法是什么?
我经常听说拥有 SVN 存储库并不会取消对备份的需求。
这种备份是如何完成的?我的意思是存储库会随着时间的推移而膨胀,不是吗?那么我每次都将其作为一个整体进行备份还是我该怎么做?
进行此类备份的最简单方法是什么?
你可以使用svnadmin dump
. 例如,要在 Linux 中创建压缩备份文件,请运行:
svnadmin dump -q /path/to/repo | bzip2 -9 > repo_backup.bz2
要恢复备份,请使用svnadmin load
:
svnadmin create /path/to/newrepo
bzip2 -cd repo_backup.bz2 | svnadmin load /path/to/newrepo
另请参阅SVN Book 中使用 svnadmin 进行存储库数据迁移。
我使用了 post commit hook 来进行增量备份:
REM 版本备份
MD "C:\SVN 备份\增量\%TYPE%"
设置类型=2020
设置 ADMIN="C:\Program Files (x86)\WANdisco\uberSVN\bin\svnadmin.exe"
设置 ZIP="C:\Program Files\7-Zip\7z.exe"
%ADMIN% 转储 %REPOS% -r %REV% --incremental | %ZIP% a -si "C:\SVN 备份\增量\%TYPE%\%2.7z" -mmt -mx9
除了增量转储之外,我还有一个运行完整转储的每周批处理文件。有点矫枉过正,但所有转储文件都使用 7 Zip 命令行实用程序进行压缩。此后,它会同步到我们常用的备份媒体。
编辑- 用最新的代码更新了我使用 7 Zip 命令行实用程序压缩转储文件的位置以节省一些空间。
我只是每周压缩一次存储库,然后将压缩文件复制到不同的存储位置。