如何使用post-commit钩子在提交时导出修订版?

时间:2012-07-18 11:29:58

标签: svn powershell hook visualsvn-server post-commit

使用post-commit钩子在提交后导出特定的Subversion存储库分支可能很方便。

E.g。 提交后更新网站或更新开发分支进行测试。

是否有这样的钩子的指示或样本?

1 个答案:

答案 0 :(得分:2)

在Windows环境中为Subversion编写钩子脚本的最佳选择(例如VisualSVN Server)是使用Windows PowerShell脚本语言或“Windows batch command-line”。

以下是 post-commit.bat post-commit.ps1 的示例代码,它们应该一起用于将已提交的修订导出到C:\Test 。将它们放入存储库'hooks'文件夹,例如C:\Repositories\repository\hooks\

<强> 后commit.ps1

# Store hook arguments into variables with mnemonic names
$repos = $args[0]
$rev   = $args[1]

# Build path to svn.exe
$svn = "$env:VISUALSVN_SERVER\bin\svn.exe"

# Build url to repository
$urepos = $repos -replace "\\", "/"
$url = "file:///$urepos/"

# Export repository revision $rev to the C:\test folder
&"$svn" export -r $rev --force "$url" c:\test

<强> 后commit.bat

@echo off

set PWSH=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
%PWSH% -command $input ^| %1\hooks\post-commit.ps1 %1 %2  
if errorlevel 1 exit %errorlevel%