SVN 简单备份与还原
2011-11-12 21:40
148 查看
备份 SVN 仓库是很麻烦的事,而 Coder 通常是很怕麻烦的人,于是 Zealic 就为减少麻烦,花了一点麻烦的时间,写了两个麻烦的脚本,解决了这个麻烦的问题。
1.备份脚本 DumpAll.bat
Copy Code
@ECHO OFF
::====================
::Author : Zealic
::Version : 1.00
::FileName : DumpAll.bat
::Summary : Dump 当前目录的所有 Svn 仓库,脚本将备份当前目录下的所有SVN仓库,
:: 本脚本依赖于 7za.exe 程序,请到下述连接下载程序
:: http://downloads.sourceforge.net/sevenzip/7za457.zip
::Update : 2008-11-26
::====================
SET VAR_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
dir /B /AD > DIRS
IF EXIST DUMP_FILES (
DEL /Q DUMP_FILES
)
FOR /F %%i IN (DIRS) DO (
SET REPOS_NAME=%%i
CALL :DUMP_REPOS
)
SET REPOS_NAME=
ECHO.
ECHO Compressing dump files...
7za a Repos_%VAR_DATE%.7z *.bin
ECHO Delete dump files...
FOR /F %%i IN (DUMP_FILES) DO (
DEL /Q %%i
)
DEL /Q DIRS
DEL /Q DUMP_FILES
ECHO Successed.
GOTO :EOF
::==== Functions ====
:DUMP_REPOS
SET DUMP_FILE=%REPOS_NAME%.bin
ECHO Dumping repository ^"%REPOS_NAME%^" ...
svnadmin dump ^"%REPOS_NAME%^" -q > %DUMP_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
DEL /Q %DUMP_FILE%
ECHO Dump ^"%REPOS_NAME%^" failed.
)
SET DUMP_FILE=
ECHO.
2.还原脚本 LoadAll.bat
Copy Code
@ECHO OFF
::====================
::Author : Zealic
::Version : 1.00
::FileName : LoadAll.bat
::Summary : Load Svn 仓库,确保当前目录为没有任何子目录,
:: 脚本将搜索当前目录下的 *.bin 文件,自动为其创建仓库并 Load Dump文件。
::Update : 2008-11-26
::====================
SET VAR_IS_EMPTY_DIR=TRUE
dir /B /AD > DIRS
FOR /F %%i IN (DIRS) DO (
SET VAR_IS_EMPTY_DIR=FALSE
)
DEL /Q DUMP_FILES
IF "%VAR_IS_EMPTY_DIR%"=="FALSE" (
ECHO Error : Current directory is not empty.
GOTO :EOF
)
SET VAR_IS_EMPTY_DIR=
dir /B /A-D *.bin > DUMP_FILES
IF "%errorlevel%"=="0" (
ECHO Finded dump file.
) ELSE (
ECHO Error : Can not find dump file.
GOTO :EOF
)
FOR /F %%i IN (DUMP_FILES) DO (
SET REPOS_FILE=%%i
CALL :LOAD_REPOS
)
SET REPOS_FILE=
DEL /Q DUMP_FILES
ECHO Successed.
GOTO :EOF
::==== Functions ====
:LOAD_REPOS
SET REPOS_NAME=%REPOS_FILE:~0,-4%
mkdir %REPOS_NAME%
ECHO Loading repository ^"%REPOS_NAME%^" ...
svnadmin create %REPOS_NAME%
svnadmin load -q %cd%\%REPOS_NAME% < %REPOS_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
RMDIR /Q %REPOS_NAME%
ECHO Load ^"%REPOS_NAME%^" failed.
)
SET REPOS_NAME=
ECHO.
麻烦解决之,所以可以去娱乐了。
1.备份脚本 DumpAll.bat
Copy Code
@ECHO OFF
::====================
::Author : Zealic
::Version : 1.00
::FileName : DumpAll.bat
::Summary : Dump 当前目录的所有 Svn 仓库,脚本将备份当前目录下的所有SVN仓库,
:: 本脚本依赖于 7za.exe 程序,请到下述连接下载程序
:: http://downloads.sourceforge.net/sevenzip/7za457.zip
::Update : 2008-11-26
::====================
SET VAR_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
dir /B /AD > DIRS
IF EXIST DUMP_FILES (
DEL /Q DUMP_FILES
)
FOR /F %%i IN (DIRS) DO (
SET REPOS_NAME=%%i
CALL :DUMP_REPOS
)
SET REPOS_NAME=
ECHO.
ECHO Compressing dump files...
7za a Repos_%VAR_DATE%.7z *.bin
ECHO Delete dump files...
FOR /F %%i IN (DUMP_FILES) DO (
DEL /Q %%i
)
DEL /Q DIRS
DEL /Q DUMP_FILES
ECHO Successed.
GOTO :EOF
::==== Functions ====
:DUMP_REPOS
SET DUMP_FILE=%REPOS_NAME%.bin
ECHO Dumping repository ^"%REPOS_NAME%^" ...
svnadmin dump ^"%REPOS_NAME%^" -q > %DUMP_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
DEL /Q %DUMP_FILE%
ECHO Dump ^"%REPOS_NAME%^" failed.
)
SET DUMP_FILE=
ECHO.
2.还原脚本 LoadAll.bat
Copy Code
@ECHO OFF
::====================
::Author : Zealic
::Version : 1.00
::FileName : LoadAll.bat
::Summary : Load Svn 仓库,确保当前目录为没有任何子目录,
:: 脚本将搜索当前目录下的 *.bin 文件,自动为其创建仓库并 Load Dump文件。
::Update : 2008-11-26
::====================
SET VAR_IS_EMPTY_DIR=TRUE
dir /B /AD > DIRS
FOR /F %%i IN (DIRS) DO (
SET VAR_IS_EMPTY_DIR=FALSE
)
DEL /Q DUMP_FILES
IF "%VAR_IS_EMPTY_DIR%"=="FALSE" (
ECHO Error : Current directory is not empty.
GOTO :EOF
)
SET VAR_IS_EMPTY_DIR=
dir /B /A-D *.bin > DUMP_FILES
IF "%errorlevel%"=="0" (
ECHO Finded dump file.
) ELSE (
ECHO Error : Can not find dump file.
GOTO :EOF
)
FOR /F %%i IN (DUMP_FILES) DO (
SET REPOS_FILE=%%i
CALL :LOAD_REPOS
)
SET REPOS_FILE=
DEL /Q DUMP_FILES
ECHO Successed.
GOTO :EOF
::==== Functions ====
:LOAD_REPOS
SET REPOS_NAME=%REPOS_FILE:~0,-4%
mkdir %REPOS_NAME%
ECHO Loading repository ^"%REPOS_NAME%^" ...
svnadmin create %REPOS_NAME%
svnadmin load -q %cd%\%REPOS_NAME% < %REPOS_FILE%
IF %errorlevel%==0 (
ECHO %DUMP_FILE% >> DUMP_FILES
) ELSE (
RMDIR /Q %REPOS_NAME%
ECHO Load ^"%REPOS_NAME%^" failed.
)
SET REPOS_NAME=
ECHO.
麻烦解决之,所以可以去娱乐了。
相关文章推荐
- SVN 简单备份与还原
- SVN备份及其还原 — dump/load方法
- svn 备份 还原 移植
- svn备份和还原
- SVN导出/导入、SVN备份/还原 【小白版】
- 简单的MySQL备份与还原方法分享
- svn的备份与还原怎么用脚本实现svn备份(linux/windows)(转载)
- C#简单备份/还原代码
- AD的简单备份与还原
- 史上最简单的MySQL数据备份与还原教程(上)(三十五)
- SharePoint2010网站备份还原简单介绍
- svn备份与还原
- [SCM]源码管理 - SVN的备份和还原
- SVN手动备份、还原
- SVN备份与还原
- 一个简单的SVN备份批处理脚本
- oracle初级简单逻辑备份还原
- [SCM]源码管理 - SVN的备份和还原
- 一个简单的dos脚本, svn 获取代码 - Tomcat 备份 - Maven 编译 - 停止/启动Tomcat - Tomcat站点 发布
- php简单备份与还原MySql的方法