2012-07-18 127 views

回答

2

在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% 
+0

是他们的任何方式来更新仅修改过的文件? 我在这里添加了问题,请检查。 http://stackoverflow.com/q/23670606/1357033 – 2014-05-15 10:06:11

+0

@bahrep有没有办法将存储库名称添加到导出路径。例如:c:\ test \ $ urepos? – 2014-08-28 16:29:34

+0

@DavidKEgghead你可以解析'$ repos'来获取版本库的名称。 – bahrep 2014-09-02 08:28:56