簡體   English   中英

win apache svn post-commit update掛起

[英]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運行? 我推薦一些東西

  1. 在更新中指定--username ,您可能不希望添加svn正在運行的本地服務帳戶,以便能夠訪問repo
  2. 添加--accept theirs-full以在發生沖突時始終獲取服務器副本
  3. 一旦你被撥入,你可能也會想要 - --quiet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM