如何备份SVN存储库?

时间:2011-03-31 13:41:02

标签: svn version-control backup backup-strategies

我经常听说拥有SVN存储库并不能取消备份需求。

这样的备份是如何完成的?我的意思是存储库会随着时间的推移而膨胀,不是吗?所以我每次都要将它作为一个整体进行备份或者我该做什么?

进行此类备份的最简单方法是什么?

5 个答案:

答案 0 :(得分:21)

我使用了svnadmin with hotcopy

svnadmin hotcopy repopath backupdestination

您还可以使用svnadmin dump command

答案 1 :(得分:21)

您可以使用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书中的Repository data migration using svnadmin

答案 2 :(得分:3)

我已经使用post commit hook进行增量备份:

  

REM备份修订

     

MD“C:\ SVN Backup \ Incremental \%TYPE%”

     

设置TYPE = 2020

     

设置ADMIN =“C:\ Program Files(x86)\ WANdisco \ uberSVN \ bin \ svnadmin.exe”

     

设置ZIP =“C:\ Program Files \ 7-Zip \ 7z.exe”

     

%ADMIN%dump%REPOS%-r%REV%--incremental | %ZIP%a -si“C:\ SVN Backup \ Incremental \%TYPE%\%2.7z”-mmt -mx9

除了增量转储之外,我还有一个运行完整转储的每周批处理文件。 有点矫枉过正,但所有转储文件都使用7 Zip命令行实用程序压缩。此后,它将与我们通常的备份媒体同步。

编辑 - 使用7 Zip命令行实用程序更新了我正在压缩转储文件的代码,以节省一些空间。

答案 3 :(得分:1)

只需复制并压缩整个存储库文件夹,即可让您轻松回到不同的时间点。当然,你必须确保在使用存储库时不要这样做,或者上帝知道会发生什么:)

在Windows上,您可以使用VSS确保您在不使用时采取一致的备份或在晚上进行备份。

或者,选中this similar questionthat blog post

答案 4 :(得分:1)

我只是每周一次压缩存储库并将zip文件复制到另一个存储位置。