使用svnsync同步svn


使用svnsync實現已有版本庫的鏡像
svn不支持分布式開發,所以把svn版本庫保存在一台服務器上是不安全的。制作一個鏡像svn版本庫有多種方式,我采用subversion自帶的svnsync程序。

源版本庫路徑:http://192.168.0.100/svn/project
鏡像版本庫路徑:/var/svn/project

  • 建立鏡像版本庫

svnadmin create /var/svn/project
# 創建鈎子
cp /var/svn/project/hooks/pre-revprop-change.tmpl /var/svn/project/hooks/pre-revprop-change
# 給予鈎子運行權限
chmod a+x /var/svn/project/hooks/pre-revprop-change
# 編輯pre-revprop-change鈎子,將最后一行的 `exit 1` 改為 `exit 0`
vim /var/svn/project/hooks/pre-revprop-change
  • 初始化鏡像庫

svnsync init file:///var/svn/project/ http://192.168.0.100/svn/project
  • 同步

# 同步也使用這段指令
svnsync sync --non-interactive file:///var/svn/project
  • 解鎖

# 刪除屬性 “svn:sync-lock” 於版本庫版本 0
svn propdel svn:sync-lock --revprop -r 0 file:///var/svn/project/
  • 修改原始版本庫的地址

如果原始版本庫的地址改變了(比如說換了域名或者IP地址),在svn中可以使用 svn relocate 來實現,但在svnsync中,就必須用propset來實現了,具體指令如下:

svn propget svn:sync-from-url –-revprop -r 0 file:///var/svn/project/
# 這個操作會顯示原始版本庫的地址(假如你忘了原始地址就很有用)
# http://192.168.0.100/svn/project

# 設置新的版本庫地址
svn propset svn:sync-from-url –-revprop -r 0 http://10.0.0.9/svn/project file:///var/svn/project/
# 再次同步
svnsync sync --noninteractive file:///var/svn/project/
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM