最近準備把我們龐大的Subversion主機移到新主機,原本以為只要把hotcopy的資料夾和檔案複製到新主機就可以完成移轉,沒想到還是遇到問題,幸好最後找到了問題點,再等下個放假日就能順利移轉過去。
Subversion環境
我們的Subversion server是使用Subversion Edge架設的,運行中的版本是5.1.1。主機每天夜間使用下列批次檔定時備份,每10天一個循環;n: 是NAS的網路磁碟機:
rem DATE1=0~9 set DATE1=%DATE:~9,1% set DATE1=%DATE1: =% c:\csvn\bin\svnadmin hotcopy c:\csvn\data\repositories\svn1\ n:\servers\svn1\%DATE1%\
還原備份
還原hotcopy的資料的指令只要把From、To資料夾對調就可以:
|rem 在新主機上執行,\5 是最新的備份 c:\csvn\bin\svnadmin hotcopy n:\servers\svn1\5\ c:\csvn\data\repositories\svn1\
複製好後進入管理網頁 http://新主機:3343/csvn 在版本庫清單按【Discover】就會抓到複製好的檔案庫。
我們在這裡遇到了問題:還原後的內容與備份不合,少了很多… 一開始懷疑是hotcopy出的內容有毀損,因此重新用dump匯出每個revision:
rem 在舊主機執行 svnadmin dump > svn1.dump
再把svn1.dump複製到新主機用load匯入:
rem 在新主機執行 svnadmin load c:\csvn\data\repositories\svn1 < svn1.dump
可惜還原後的內容依然不對。最後懷疑是Subversion Edge系統的問題,因為新主機安裝的是最新版 5.2.2,移除後重新安裝舊版的5.1.1,果然在5.1.1的環境裡就能正確取到備份內容了。
同步兩部SVN主機
順便加了同步版本資訊的處理,步驟如下:
- 在舊主機執行 svnsync init:
svnsync init --allow-non-empty --source-username 舊主機帳號 --source-password 舊主機密碼 --sync-username admin --sync-password 新主機admin密碼 http://新主機IP/svn/svn1 http://新主機IP/svn/svn1
- 建立 commit後 hooks:在c:\csvn\data\repositories\svn1\hooks資料夾裡建立 post-commit.bat,內容如下:
svnsync sync --non-interactive --source-username 舊主機帳號 --source-password 舊主機密碼 --sync-username admin --sync-password 新主機admin密碼 http://新主機IP/svn/svn1 http://新主機IP/svn/svn1
##
您可能也會有興趣的類似文章
- [Subversion] 尋找Subversion Client工具 (0則留言, 2005/09/01)
- TortoiseSVN的命令行操作 (0則留言, 2015/04/03)
- 由Subversion檔案庫匯出特定專案的內容 (0則留言, 2005/12/25)
- Subversion權限設定範例說明 (0則留言, 2009/09/09)
- 兩個Subversion的前端工具:QSvn、Subcommander (0則留言, 2006/06/23)
- Subversion changelist命令行操作 (0則留言, 2013/06/13)
- Subversion的搬移(Move)操作 (5則留言, 2009/09/05)
- loginfo.rb:自動寄送修改記錄信件 (0則留言, 2005/06/20)
- 幾篇值得注意的Subversion相關文章 (0則留言, 2008/08/10)
- 「勢不可擋」的Subversion (0則留言, 2007/08/18)
- 見微知著:觀《版本控制之道-使用Subversion》有感 (1則留言, 2007/08/19)
- Java-based Subversion client登入AD的帳號問題 (0則留言, 2007/08/24)
- 整合Redmine的TortoiseSVN外掛:TurtleMine (0則留言, 2015/01/23)
- 升級Subversion client版本與VisualSVN Server (8則留言, 2008/11/22)
- 升級Subversion 1.7 (0則留言, 2012/11/06)