如何使用提交后提交钩子提交提交时的修订?
问题描述:
在提交后使用post-commit钩子导出特定Subversion存储库分支可能很方便。如何使用提交后提交钩子提交提交时的修订?
E.g.到在提交后更新网站或更新开发分支以进行测试。
有没有这样的钩子的任何指令或样本?
答
在Windows环境下为Subversion编写钩子脚本(例如VisualSVN Server)的最佳选择是使用Windows PowerShell脚本语言或好的'Windows batch command-line。
这里是commit.bat后和后commit.ps1的示例代码,应一起使用的提交的版本导出到C:\Test
。将它们放入存储库的“挂钩”文件夹中,例如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%
是他们的任何方式来更新仅修改过的文件? 我在这里添加了问题,请检查。 http://*.com/q/23670606/1357033 – 2014-05-15 10:06:11
@bahrep有没有办法将存储库名称添加到导出路径。例如:c:\ test \ $ urepos? – 2014-08-28 16:29:34
@DavidKEgghead你可以解析'$ repos'来获取版本库的名称。 – bahrep 2014-09-02 08:28:56