service:subversion:subversion_如何備份_同步_svnsync
Subversion 如何備份(同步:svnsync)
來源:
http://blog.xuite.net/chijunglin/chijung/25368368
http://blog.jostudio.net/2007/06/svn.html
http://www.jaceju.net/blog/archives/275
副本:
經常使用Subversion的林桑,去年好不容易搞上了一台符合我身份地位的窮人版NAS,在一陣改機之後,現在NAS上最重要的三個service 1. Subversion 2.rTorrent 3.FTP/SAMBA 使用Subversion最麻煩的就是備份,經常使用Subversion的人應該會同意我的看法,Subversion上的Log message是記錄著你的成長足跡...甚至比svn上的source code還重要,偏偏林桑的工程師個性,常常搞的svn server運作的NAS常常需要重灌...幾次下來,也研究出一套完整備份SVN Repository的方法.. 方法一、直接用copy/paste備份整個repository資料夾 優點: 簡單(大概只要會用mouse上網的人都會用) 缺點: 以NAS這種embedded system近似殘障的CPU來說,每次備份或壓縮repository要花上半天或一天是很正常的,而且隨著你使用svn的時間愈長,每次備份的時間會愈來愈長... 方法二、在XP上,再裝一個svn server,然後不定期(或定期)同步二個svn repository(使用svnsync) 優點: 可以把xp這個做為redundant svn server 使用,如此一來SVN service就不會因為NAS被我搞掛而中斷囉;而且每次只做差異部份的同步,速度很快;同步到xp後,就可以使用xp上強力的cpu來壓縮備份,方便省事 缺點: xp上的svn版本要跟nas上的一致,這樣還原時只要把xp上的整個repository的folder完整的copy到nas上,再改一下hooks 裡面的一些script檔(linux用shell-script xp用batch-command)就可以還原囉;(ps 如果不一致的話,很有可能就無法直接還原,必須要再用svnsync的方式,再從xp sync回nas上) 言歸正傳,還是要講一下svnsync的方法 (為配合nas上無法昇級的subversion, 要先確定nas和xp都使用subversion 1.4.6) [設定從xp將nas上的svn repository同步至xp上] 1.[NAS]先記下repository下db/uuid的內容(這個很重要,否則還原後你的client會無法認出原還後的是同一個repository) 2.[XP]先svnadmin create dest-trunk (建一個空的trunk用來存放備份的資料) 3.[XP]到dest-trunk裡的hooks目錄,執行cp pre-revprop-change.tmpl pre-revprop-change 並修改pre-revprop-change內容 將最後一行的exit 1 改成exit 0 4.[XP]執行svnsync init svn://XP_IP/dest-trunk svn://NAS_IP/src-trunk 5. [XP]執行svnsync sync svn://XP_IP/dest-trunk [從xp的repository 還原NAS上的repository] 1.[XP]將dest-trunk透過SAMBA或ftp直接copy到NAS的repository folder 2.[NAS]修改對應的conf & hooks 指令 3.[NAS] vi repository/db/uuid 將uuid的內容修改成原先記下的uuid 4. enjoy
service/subversion/subversion_如何備份_同步_svnsync.txt · 上一次變更: 2019/11/16 08:12 由 127.0.0.1