Subversion学习笔记4

分享Subversion by 达达 at 2008-02-23

今天试了下Subversion的备份。我的SVN代码仓库是放在U盘里,要是哪天U盘丢了或者坏了东西可就全没了。所以备份挺有必要的。

TortriseSVN似乎没有备份代码仓库的功能。所以我只能装上Subversion了。我载的是svn-1.4.5-setup.exe(链接),这是个Windows的安装包,鼠标点一点就安装好了 :)

安装好后就可以在命令行下通过svnadmin命令来备份SVN代码仓库了。具体的命令是格式是:

svnadmin dump [代码仓库路径] > [目标文件路径]

dump命令会把代码仓库完整备份成一个单一文件。会包括所有的版本信息。

dump和直接压缩备份代码仓库文件夹是有区别的。用拷贝目录的方式备份代码仓库,如果在拷贝期间有人提交了更新,就会造成备份损坏,所以是不安全的。而dump命令则不会。

试验完dump命令后,我做了个批处理文件,按日期创建备份文件,放到不同项目的备份文件夹下 :D

pause

@echo off
set dst=%date:~0,4%%date:~5,2%%date:~8,2%.svnbk
@echo on

svnadmin dump z:SVN-ReposMaxLab.Common > MaxLab.Common/%dst%

svnadmin dump z:SVN-ReposMaxLab.Common.Data > MaxLab.Common.Data/%dst%

svnadmin dump z:SVN-ReposMaxLab.Common.Web.PageEngine > MaxLab.Common.Web.PageEngine/%dst%

svnadmin dump z:SVN-ReposMaxLab.Common.ObjectQuery > MaxLab.Common.ObjectQuery/%dst%

pause

dump不止可以做备份也可以用来做代码仓库的迁移 :)

使用svnadmin load命令可以将dump加载到一个代码仓库中。命令格式如下:

svnadmin load [代码仓库路径] < [dump文件路径]

另外dump还支持增量备份,不过我还没试验过,以后试了在做笔记 :D