国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Windows下SVN的備份方案

Windows下SVN的備份方案 

版本控制最關(guān)鍵的一件事是保證數(shù)據(jù)的安全性,不能因為磁盤損壞,程序故障造成庫的無法挽回的錯誤, 為此必需制定較完備的備份策略.在subversion中,我們有三種備份方式:完全備份,增量備份和同步版本庫.

 

1,完全備份:

最 常見和簡單的備份就是直接使用拷貝命令,將版本庫目錄拷貝到備份目錄上,就可以了.但是這樣不是很安全的方式,因為如果在拷貝時版本庫發(fā)生變化,將會造馬 備份的結(jié)果不夠準確,失去備份的作用,為此xubversion 提供了"svnadmin hotcopy"的命令,可以防止這種問題.

比如有如下的版本庫:

D:\svnroot
├─project1
│     ├─conf
│     ├─dav
│     ├─db
│     │     ├─revprops
│     │     ├─revs
│     │     └─transactions
│     ├─hooks
│     └─locks
└─project2
      ├─conf
      ├─dav
      ├─db
      │     ├─revprops
      │     ├─revs
      │     └─transactions
      ├─hooks
└─locks

如果要把project1備份到D:\svnrootbackup目錄下,只需要運 行:svnadmin hotcopy d:\svnroot\project1 d:\svnrootbackup\project1

ps:如果我們目錄下有很多版本庫,需要為每個版本庫寫這樣一條語句備份,必需想辦法優(yōu)化這個過 程.為此,建立以下的2個bat文件.

simplebackup.bat:
@echo 正在備份版本庫%1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本庫%1成功備份到了%2!

backup.bat:
echo off
rem Subversion的安裝目錄
set SVN_HOME="D:\Subversion"
rem 所有版本庫的父目錄
set SVN_ROOT=D:\svnroot
rem 備份的目錄
set BACKUP_SVN_ROOT=D:\svnrootbak
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立備份目錄%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log
mkdir %BACKUP_DIRECTORY%
rem 驗證目錄是否為版本庫,如果是則取出名稱備份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simplebackup.bat "%%~fI" %%~nI
goto end
:checkBack
echo 備份目錄%BACKUP_DIRECTORY%已經(jīng)存在,請清空。
goto end
:end

使 用的時候,只需要修改backup.bat開頭的三個路徑,將兩個腳本拷貝到"svn_root"下就可以了.根據(jù)以上的配置,你只需要運行 backup.bat.就可以把"svn_root"下的版本庫都備份到"backup_svn_root"里,并且存放在備份所在的目錄里.

2,增量備份.

盡管完全備份非常簡單,但是也是有代價的,當版本庫非常巨大的時候,經(jīng)常進行完全備份是不現(xiàn)實的, 也并不必要,但是一量版本庫在備份之間發(fā)生問題該如何呢,我們就用到了增量備份.

增量備份通常要與完全備份結(jié)合使用,記錄著每次subversion提交的變化,然后在需要恢復(fù)時 能夠回到最新的可用狀態(tài).

我拉使用的是,svnadmin dump 命令進行增量的備份,使用方法是:

svnadmin dump d:\sourcecode\project1 --revision 15 --incremental > d:\sourcecode\dumpfile

上面的命令實現(xiàn)了對修訂版本15進行增量的備份,其中的輸出文件dumpfile只保存了修訂版本 15更改的內(nèi)容

恢復(fù)增量備份時,使用方法是:
svnadmin load d:\sourcecode\project1 < d:\sourcecode\dumpfile
上面的命令實現(xiàn)了對增量備份文件恢復(fù)到版本庫project1中

使用鉤子腳本Hooks實現(xiàn)自動增量備份:
1) 建立deltabackup.bat文件,內(nèi)容為:
@echo 正在備份版本庫%2......
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%1 --incremental --revision %2 >> %DELTA_BACKUP_SVN_ROOT%\%1.dump
@echo 版本庫%2成功備份到了%3!
2) 建立post-commit.bat文件,內(nèi)容為:
echo off
set SVN_HOME="C:\Program Files\Subversion"
set SVN_ROOT=D:\svnroot
set UNIX_SVN_ROOT=D:/svnroot
set DELTA_BACKUP_SVN_ROOT=D:\svnrootbak\delta
set LOG_FILE=%1\backup.log
echo backup revision %2 >> %LOG_FILE%
for /r %SVN_ROOT% %%I in (.) do if D:/svnroot/%%~nI == %1 %SVN_ROOT%\%%~nI\hooks\deltaBackup.bat %%~nI %2
goto end
:end
3) 把以上兩個腳本可以直接拷貝到版本庫的hooks目錄下,就可以實現(xiàn)版本庫的自動備份。

3. 同步版本庫:
同步機制,可以實現(xiàn)一個版本庫同另一個版本庫的同步(但好像只是單向的),我們可以用來實現(xiàn)版本庫的備份或鏡像。
例如:同步版本庫d:\sourcecode\project1
1) 新建一個空的版本庫project2
運行命令:
svnadmin create d:\sourcecode\project2

2) 為新的版本庫創(chuàng)建pre-revprop-change鉤子腳本(hook scrīpt)
在d:\sourcecode\project2\hooks目錄下新建一個空的pre-revprop-change.bat文件

3) 初始化版本庫
運行命令:
svnsync init
file:///d:/sourcecode/project2 file:///d:/sourcecode/project1

4) 同步版本庫
運行命令:
svnsync sync
file:///d:/sourcecode/project2
 
5) 至此,版本庫同步已經(jīng)完成。
在使用新的版本庫之前,還需要根據(jù)需要對版本庫的訪問權(quán)限等進行配置。

使用鉤子腳本Hooks實現(xiàn)自動同步:
1) 建立post-commit.bat文件,內(nèi)容為:
echo off
set SVN_HOME="D:\Subversion"
%SVN_HOME%\bin\svnsync sync     --non-interactive svn://localhost/project2
2) 把post-commit.bat文件放到版本庫project1下的hooks目錄下,這樣project1每次提交,都會引起project2的同步
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Svn備份與恢復(fù)
SVN完全備份和增量備份
SVN 每日自動備份
sub version
SVN倉庫備份和遷移
Linux下SVN的三種備份方式
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服