簡體   English   中英

SVN Post Commit Hook Batch Windows

[英]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.

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