[英]SVN Post Commit Hook Batch Windows
我有一台運行Visual SVN Server的Windows Server來存儲我們的存儲庫。 該服務器上還有我們的測試副本。
我正在嘗試設置一個簡單的SVN post-commit鈎子,以便每次我提交時自動更新該測試副本
在后提交鈎子中的Visual SVN中,我設置了這樣的
"C:\Program Files (x86)\VisualSVN Server\bin\updatescripts.bat" D:\inetpub\TESTCOPY
然后該批處理文件有一個像這樣的簡單更新
PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\"
svn update %1
如果我通過雙擊它或從命令行運行服務器中的批處理文件工作正常。 當從我的筆記本電腦上提交某些內容時,它會凍結並且不會給我任何錯誤並鎖定測試副本,因此我需要進入並進行清理。
Visual SVN服務作為網絡服務運行,並且此aacount可以完全訪問服務器上的bin文件夾和測試副本。
任何想法如何設置一個簡單的svn更新post post hook任何人?
謝謝聯邦
我遇到了類似的問題,結果證明SVN喜歡使用正斜杠而不是反斜杠的路徑。
嘗試這個:
set MYPATH=%1
:: Transform backslashes to forward slashes
set MYPATH=%MYPATH:^\=/%
svn update %MYPATH%
您正在運行svn update
命令。 您正在嘗試更新的工作副本到底是什么?
傳遞的參數是Repository的路徑 。 這不是指向工作目錄,而是指向包含Subversion主存儲庫的目錄。 這是存儲post commit鈎子的目錄。
Subversion掛鈎無法訪問用戶的工作目錄,因此您無法操縱用戶的文件。 鈎子腳本通常應該使用svnlook
而不是svn
。 通過這樣做,您可以防止自己陷入任何麻煩。
如果您知道位置,則可以在服務器上更新Subversion工作副本:
PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\"
set SVN_WORK_DIR=C:\SVN\workdir"
svn update %SVN_WORK_DIR%
但是,我不推薦這個,因為它綁定了Subversion。 執行提交的用戶必須等到更新完成,然后Subversion才會將提示控件返回給用戶。
在嘗試了一百萬種不同的東西后,這對我有用......
我把它放在我的post-commit鈎子“C:\\ Program Files \\ VisualSVN Server \\ bin \\ svn.exe”更新“C:\\ my path \\”,其中我的路徑是要更新的工作副本的路徑
此外,我不得不將服務更改為本地系統運行
這真的不是你想要那樣做的方式。 你應該做的是使用像詹金斯這樣的東西來觀察你的存儲庫。 Jenkins可以監視您的存儲庫,它可以在更改時更新,更新測試副本,啟動構建,運行自動化測試等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.