學習筆記 如何使用svnsync命令對SVN庫進行備份
本節向大家介紹一下如何使用svnsync命令對SVN庫進行備份,使用svnsync備份很簡單,只有四個步驟,在這里和大家簡單介紹一下,希望通過本節的學習大家能夠掌握使用svnsync命令對SVN庫進行備份的方法。
下面是具體的備份步驟:
一、在備份機上創建一個空庫:svnadmincreateSMP
二、更改該庫的鉤子腳本pre-revprop-change(因為svnsync要改這個庫的屬性,也就是要將源庫的屬性備份到這個庫,所以要啟用這個腳本):
cdSMP/hooks;
cppre-revprop-change.tmplpre-revprop-change;
chmod755pre-revprop-change;
vipre-revprop-change;
將該腳本后面的三句注釋掉,或者干脆將它弄成一個空文件。
三、初始化,此時還沒有備份任何數據:
svnsyncinitfile:///home/backup/svn/svnsync/SMP/http://svntest.subversion.com/repos/SMP
語法是:svnsyncinit{你剛創建的庫url}{源庫url}
注意本地url是三個斜杠的:///
四、開始備份SVN庫:
svnsyncsyncfile:///home/backup/svn/svnsync/SMP
這是就一個個版本進行備份了。我們來看一下SVN庫備份過程中可能出現的錯誤。
附錄:
可能的報錯一:
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- Failedtogetlockondestinationrepos,currentlyheldby'bug1.corp.scmbbs.com:0c424c20-2e3b-0410-bd34-7fdd53c25d02'
- svnsync:Couldn'tgetlockondestinationreposafter10attempts
這個時候可能屬性被鎖了,刪掉屬性:svnpropdelsvn:sync-lock--revprop-r0file:///home/backup/svn/svnsync/SMP
刪除成功后,再試一遍基本就可以了。如果反復操作都是同樣錯誤的話,有可能是你的svn安裝的有問題,重新安裝一遍就好了,俺就是這樣。
可能報錯二、
svnsync:REPORTrequestfailedon'http://svn1.subversion.com/repos/Relevance'
svnsync:Therequestedreportisunknown.這是因為你源庫的版本太低了,svnsync所需要的函數Report是svn1.4后加入的。沒辦法,對你的SVN庫進行升級后才能備份。
【編輯推薦】