SVN版本库自动备份如何实现?

开发 项目管理
本文向大家介绍一下如何为SVN版本库实现自动备份问题,在学习SVN的过程中难免会遇到SVN备份问题,在这里拿出来和大家分享一下,希望对大家有用。

本节和大家学习一下SVN版本库自动备份问题,感兴趣的朋友们可以看一下,当让本节的内容仅供参考,如果你有什么好的方法大家可以相互讨论,欢迎大家一起来学习SVN版本库自动备份的知识,希望本文能教会你更多东西。

截止到目前为止,手上的项目都纳入SVN进行管理,随着而来的问题是:如何为SVN版本库实现自动备份。我手上用的是VisualSVN工具来代替SVN服务端,但VisualSVN没有提供备份工具,没办法只好自己写一个,再写这个脚本的时候,我参考了SCMLife论坛上某位朋友的脚本文件,并稍做修改,现在贡献出来!
前提条件:
你的机器上装有VisualSVN,如果没有,也没有关系,只要确保Subversion的安装目录下可以找到svnadmin这个命令即可。因为版本库的备份就是利用这个程序来实现;
你的机器上要有7zip的命令行程序7z.exe,如果没有,请去7zip官方网站下载,因为我们要用到这个程序来实现对备份后的版本库进行压缩保存;
知道你的版本库所在目录;
SVN版本库自动备份中备份脚本分为两个批处理文件,它们分别是:backup.bat与simpleBackup.bat。需要记住得是:simpleBackup.bat文件要放在版本库所在的目录下;而backup.bat可以任意放置。我们调用的是backup.bat;每次备份成功后,会在版本库所在目录下的backup.log文件中记录;
backup.bat源码
echooff
remSubversion的安装目录
setSVN_HOME="C:\ProgramFiles\VisualSVNServer"
rem所有版本库的父目录
setSVN_ROOT=E:\Repositories
rem备份的目录
setBACKUP_SVN_ROOT=E:\bak
rem创建存放版本库的临时目录
setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2%
ifexist%BACKUP_DIRECTORY%gotocheckBack
echo%date:~0,4%%date:~5,2%%date:~8,2%:建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log
SVN版本库自动备份时需要rem创建备份目录
md%BACKUP_DIRECTORY%
rem验证目录是否为版本库,如果是则取出名称备份
for/r%SVN_ROOT%%%Iin(.)do@ifexist"%%I\conf\svnserve.conf"call%SVN_ROOT%\simpleBackup.bat"%%~fI"%%~nI
echo开始压缩版本库,请不要中止....
%SVN_ROOT%\7z.exea-tzip%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2%.zip%BACKUP_DIRECTORY%\*-r>nul
echo版本库压缩完成!
rem清除临时创建备份目录
rd/s/q%BACKUP_DIRECTORY%
gotoend
:checkBack
echo备份目录%BACKUP_DIRECTORY%已经存在,请清空。
gotoend
:end
SimpleBackup.bat源码@echo正在备份版本库%1......
@%SVN_HOME%\bin\svnadminhotcopy%1%BACKUP_DIRECTORY%\%2
@echo版本库%1成功备份到了%2!
PS:在编写批处理文件时,我试图创建一个变量,该变量用于保存当前日期,但是不知为何总是不能成功,相关代码如下:
echooff
setfilename=%date:~0,4%%date:~5,2%%date:~8,2%
echo文件名:%filename%。本节介绍SVN版本库自动备份完毕,请关注本节其他相关报道。
 

【编辑推荐】

  1. Windows下SVN备份中两大功能详解
  2. SVN管理与应用相关的资料参考手册
  3. ApacheSVN服务器安装指导手册
  4. Centos下SVN的安装配置实用手册
  5. SVN服务器安装指导手册

 

责任编辑:佚名
相关推荐

2010-05-26 15:07:36

SVN版本库自动备份

2010-05-31 14:32:44

SVN自动同步

2010-06-01 18:49:19

删除SVN备份

2010-05-27 19:04:01

SVN入门

2010-05-21 18:33:02

2021-09-22 09:55:20

LinuxMySQL数据库

2018-06-07 09:22:16

LinuxMysql备份

2011-05-16 11:29:00

MySQL自动备份

2009-08-12 18:16:37

Oracle数据库自动UNIX

2010-11-29 13:28:55

sybase自动备份

2019-07-25 18:57:36

Linux数据库自动备份

2010-05-26 18:32:07

SVN库

2010-05-26 18:43:42

SVN库

2010-05-24 09:11:06

SVN版本库

2010-06-02 19:54:48

SVN自动更新

2010-05-31 17:56:27

2011-03-28 16:12:55

mysql自动远程备份

2010-06-02 19:40:55

搭建SVN版本库服务器

2010-06-02 14:16:18

SVN版本控制

2010-05-21 13:23:23

SVN作为window
点赞
收藏

51CTO技术栈公众号