登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学无止境

一点积累,与大家分享

 
 
 

日志

 
 

SVN 简单备份与还原  

2010-07-22 16:03:05|  分类: 其它 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

备份 SVN 仓库是很麻烦的事,而 Coder 通常是很怕麻烦的人,于是 Zealic  就为减少麻烦,花了一点麻烦的时间,写了两个麻烦的脚本,解决了这个麻烦的问题。

  1.备份脚本 DumpAll.bat

Copy Code
1 @ECHO OFF
2 ::====================
3 ::Author : Zealic
4 ::Version : 1.00
5 ::FileName : DumpAll.bat
6 ::Summary : Dump 当前目录的所有 Svn 仓库,脚本将备份当前目录下的所有SVN仓库,
7 :: 本脚本依赖于 7za.exe 程序,请到下述连接下载程序
8 :: http://downloads.sourceforge.net/sevenzip/7za457.zip
9 ::Update : 2008-11-26
10 ::====================
11 SET VAR_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
12 dir /B /AD > DIRS
13 IF EXIST DUMP_FILES (
14 DEL /Q DUMP_FILES
15 )
16 FOR /F %%i IN (DIRS) DO (
17 SET REPOS_NAME=%%i
18 CALL :DUMP_REPOS
19 )
20 SET REPOS_NAME=
21
22 ECHO.
23 ECHO Compressing dump files...
24 7za a Repos_%VAR_DATE%.7z *.bin
25
26 ECHO Delete dump files...
27 FOR /F %%i IN (DUMP_FILES) DO (
28 DEL /Q %%i
29 )
30
31 DEL /Q DIRS
32 DEL /Q DUMP_FILES
33
34 ECHO Successed.
35 GOTO :EOF
36
37 ::==== Functions ====
38 :DUMP_REPOS
39 SET DUMP_FILE=%REPOS_NAME%.bin
40 ECHO Dumping repository ^"%REPOS_NAME%^" ...
41 svnadmin dump ^"%REPOS_NAME%^" -q > %DUMP_FILE%
42 IF %errorlevel%==0 (
43 ECHO %DUMP_FILE% >> DUMP_FILES
44 ) ELSE (
45 DEL /Q %DUMP_FILE%
46 ECHO Dump ^"%REPOS_NAME%^" failed.
47 )
48 SET DUMP_FILE=
49 ECHO.

 

2.还原脚本 LoadAll.bat

Copy Code
1 @ECHO OFF
2 ::====================
3 ::Author : Zealic
4 ::Version : 1.00
5 ::FileName : LoadAll.bat
6 ::Summary : Load Svn 仓库,确保当前目录为没有任何子目录,
7 :: 脚本将搜索当前目录下的 *.bin 文件,自动为其创建仓库并 Load Dump文件。
8 ::Update : 2008-11-26
9 ::====================
10 SET VAR_IS_EMPTY_DIR=TRUE
11 dir /B /AD > DIRS
12 FOR /F %%i IN (DIRS) DO (
13 SET VAR_IS_EMPTY_DIR=FALSE
14 )
15 DEL /Q DUMP_FILES
16
17 IF "%VAR_IS_EMPTY_DIR%"=="FALSE" (
18 ECHO Error : Current directory is not empty.
19 GOTO :EOF
20 )
21 SET VAR_IS_EMPTY_DIR=
22
23 dir /B /A-D *.bin > DUMP_FILES
24 IF "%errorlevel%"=="0" (
25 ECHO Finded dump file.
26 ) ELSE (
27 ECHO Error : Can not find dump file.
28 GOTO :EOF
29 )
30
31 FOR /F %%i IN (DUMP_FILES) DO (
32 SET REPOS_FILE=%%i
33 CALL :LOAD_REPOS
34 )
35 SET REPOS_FILE=
36 DEL /Q DUMP_FILES
37 ECHO Successed.
38 GOTO :EOF
39
40 ::==== Functions ====
41 :LOAD_REPOS
42 SET REPOS_NAME=%REPOS_FILE:~0,-4%
43 mkdir %REPOS_NAME%
44 ECHO Loading repository ^"%REPOS_NAME%^" ...
45 svnadmin create %REPOS_NAME%
46 svnadmin load -q %cd%\%REPOS_NAME% < %REPOS_FILE%
47 IF %errorlevel%==0 (
48 ECHO %DUMP_FILE% >> DUMP_FILES
49 ) ELSE (
50 RMDIR /Q %REPOS_NAME%
51 ECHO Load ^"%REPOS_NAME%^" failed.
52 )
53 SET REPOS_NAME=
54 ECHO.

麻烦解决之,所以可以去娱乐了

  评论这张
 
阅读(723)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018