1,需求說明,Linux做爲主庫(A),Windows做爲本地備份庫(B),要求天天將Linux庫中的代碼備份到本地web
2,B機器上安裝svn服務端svn
3,spa
4,建立一個新的svn倉庫(倉庫必須是新建立的並且不能有提交,更新等操做)3d
進入倉庫的hooks文件夾,複製pre-revprop-change.tmpl 文件,重命名爲pre-revprop-change.bat ,編輯pre-revprop-change.bat文件 刪除所有內容,輸入exit 0 保存code
五、執行同步要使用到兩個命令
一、svnsync init
初始化,創建目標庫和源庫之間的同步關係
命令格式 svnsync init 目標庫URL 源庫URL
二、svnsync sync
真正的同步
命令格式 svnsync sync 目標庫URLblog
所有操做以下圖所示同步
C:\Users\Administrator>svnsync init file:///E:\lywebsite svn://39.105.111.20/lywit
Ebsiteio
C:\Users\Administrator>svnsync sync file:///E:\lywebsiteast
執行svnsync init 時先會讓你填寫administrator的密碼,隨便輸入就行
接下來輸入svn的帳號密碼
最後執行svnsync sync ,這一步有可能也會讓你輸入用戶名密碼
可以使用下面的格式,帶上用戶名和密碼
svnsync sync file:///svn/proj1 –username username –password password
問題:
1. Repository has not been enabled to accept revision propchanges
解決方法:
Linux:
在hooks下新建pre-revprop-change文件,內容是
#!/bin/sh
exit 0;
Windows:
在hooks下新建pre-revprop-change.bat文件, 內容爲空便可
2. Revprop change blocked by pre-revprop-change hook (exit code 255) with no output
解決方法:
Linux:
chmod a+x pre-revprop-change
3,svnsync: Destination HEAD (593) is not the last merged revision (592);
have you committed to the destination without using svnsync?
解決方法
svn propset --revprop -r0 svn:sync-last-merged-revision 593 file:///home/test/svn/test