[英]win apache svn post-commit update hangs
我正在使用一個svn apache模塊來管理我在網絡服務器上的存儲庫和tartoise svn以便與它進行交互。
每當我提交一些東西時,我想自動更新服務器上的工作副本,這樣我就不必在服務器上手動安裝遠程桌面並手動運行更新。
為此我在repo上創建了一個簡單的post-commit鈎子
echo %username% >> C:\debug.txt
svn update F:\wampserver64\www\netcity\maintenance\ >> C:\debug.txt
問題是我不能再對回購進行任何更改。 提交剛達到100%后掛起,ok按鈕顯示為灰色。 之后,提交的文件處於鎖定狀態,無論是客戶端還是服務器,我必須在兩個工作站上進行清理和更新。 echo%username%用於調試目的。 我懷疑這可能是一個權限問題,所以我想用svn運行的用戶名。 這是輸出:
XIBM$
Updating 'F:\wampserver64\www\netcity\maintenance':
XIBM $甚至不是用戶名。 它是服務器的名稱。 如果運行manualy,.bat掛鈎運行正常並返回一個reaonable輸出:
liviu.gelea
Updating 'F:\wampserver64\www\netcity\maintenance':
At revision 19.
我已經嘗試為XIBM /用戶,身份驗證用戶,管理員,訪客以及在服務器上移動但幾乎沒有運氣的所有內容設置完全權限。 所以任何幫助都是非常苛刻的。
正如我多次提到的,不要使用post-commit腳本執行此操作。 當該提交后腳本正在運行時,用戶被鎖定並等待該提交完成。 在這段時間里,他們對他們的計算機,Subversion和你生氣。
相反,使用像Jenkins這樣的持續集成引擎來處理這個問題。 Jenkins設置簡單,並且會消除提交后腳本的痛苦。
此外,Jenkins可以保留所有提交的完整歷史記錄,以及服務器更新時發生的情況,如果出現問題,可以通過電子郵件發送給您。 更好的是,你可以使用像Promote Build插件這樣的東西來挑選你真正想要部署到服務器的提交。
什么帳號是svn運行? 我推薦一些東西
--username
,您可能不希望添加svn正在運行的本地服務帳戶,以便能夠訪問repo --accept theirs-full
以在發生沖突時始終獲取服務器副本 --quiet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.