我試圖讓Subversion在提交時自動部署當前的工作副本。Subversion失敗後提交掛鉤?
例如,如果某人簽出'public_html'回購並提交更改,我需要SVN在運行svn的服務器上自動運行'svn update/path/to/public_html /'。
我已經成立了一個post-commit鉤子調用:
在/ usr/bin中/ SVN更新/路徑/到/的public_html/
我已經確保提交後鉤子是可執行的,如果我通過SSH手動運行腳本,它會正常運行並更新/ path/to/public_html/dir,因此我們知道提交後腳本正常工作。
我現在遇到的問題是,每當我承諾,我得到這個錯誤:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/public_html': 200 OK (http://ourdomain.com)
事情是,SVN躺在通過它的牙齒:提交其實沒有失敗 - 如果我手動更新dir(或手動運行提交後腳本)更新完成,並且更改將反映在服務器上。
那麼,有誰知道爲什麼我的後提交掛鉤失敗?
我已經看過這篇文章的一些帖子,但似乎沒有任何解決辦法,除了「嘗試運行後提交腳本手動」,我試過了,它工作正常..所以,提交腳本不是問題,它似乎是SVN本身的問題。
任何幫助將不勝感激!
這並不直接回答你的問題,所以我將它包含在評論中而不是答案中 - 我建議不要直接在svn存儲庫中運行你的公共http服務器內容。相反,您應該使用構建和部署腳本,將腳本和內容打包並將其移至發佈位置。自動搭配提交聲音特別可怕 - 如果有人檢查代碼錯誤或寫入中的粗魯錯字會怎麼樣?你永遠沒有機會在他們上線之前測試這些變化。 – Ether 2010-08-04 22:09:48