2010-08-23 87 views
9

我試圖通過使用svnsync來複制已使用的存儲庫(我這樣做是爲了確保最佳使用我的存儲庫,只要它機器正在工作),但似乎沒有工作。svnsync不工作:revprop更改被pre-revprop-change hook阻止

我有兩臺機器(我已經改變了名稱,而不是其他的相關信息)

  • INITIAL:定製的Linux使用Subversion 1.4.5(r25188)(所報告的svnadmin)。在這臺機器上,我試圖在名爲SOURCE的存儲庫上同步。該存儲庫可以使用http協議訪問,並創建了svnsync用戶。在SOURCE/hooks中,只有一個可執行文件存在:pre-revprops-change
  • 最終版:Ubuntu與Subversion 1.6.6(r40053)(由svnadmin報告)。在這臺機器上,我將在名爲svn16的存儲庫上同步。該存儲庫可以使用http協議訪問,並創建了svnsync用戶。在svn16/hooks中,可執行文件是pre-revprop-changestart-commit。在這個機器上,dav_svn.conf包含指令SVNParentPath /var/svn,使得http://FINAL/svn

下訪問所有存儲庫,我保證網址和登錄/密碼是通過在瀏覽器中打開每個URL庫和發行認證的對話框,它似乎總是正確的工作。

我試圖執行以下命令

svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE 

但它最終總是顯示

Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL 
Password for 'ubunut-user': 
Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL 
Username: svnsync 
Password for 'svnsync': 
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent 
svnsync: At least one property change failed; repository is unchanged 
svnsync: Error setting property 'sync-lock': 
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output. 

我想有某種配置問題somewhere§的。但是什麼?哪裏?我已經達到了我的極限,網絡在這裏似乎沒有任何幫助,因爲我看到的各種文檔都建議讓整個宇宙可執行鉤子是一個有效的解決方案(它不是我的情況)。

回答

13

原來我比笨笨笨。

在這樣的錯誤情況下,確保所有工作正常工作的最簡單方法是手動調用各種鉤子。

據透露我pre-revprop-change鉤被錯誤地寫有

"#!/bin/sh" 
exit 0 

顯然,除去"解決的問題。

+0

對於Windows剛剛創建用於鉤 空bat文件'回波REM虛設>%鏡%\鉤\版本屬性預-change.bat' – 2011-02-24 13:21:27

12

只是一點點注意,以避免經常犯的錯誤。

如果發生此類錯誤,請首先確保pre-revprops-change文件是可執行文件。 如果沒有,執行:

chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change

其中$ DEST_SVN_REPO - 路徑目標資源庫。

+0

使用Samba,文件是不可執行的。通過更改我的'mount'命令中的選項來使其可執行,解決了我的問題。謝謝。 – 2015-08-24 04:05:18

+0

,應該閱讀pre-revprop-change,而不是除我以外的任何人仍然使用svn – 2015-10-22 19:50:35

1

在這裏看到: https://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

你的目標配置失敗。INIT階段(複製屬性)必須完成。 在pre revprops-change腳本中,您應該編碼允許更新的用戶名。 否則目標將被用戶損壞。 svn不能用作主動 - 主動節點。 通常您會配置掛鉤腳本以防止用戶進行任何修改。他們應該只有reaad訪問了。

一般轉到超級用戶web服務。有沒有這個話題。