如何在powershell中连接SharpSvn.SvnUpdateResult

时间:2012-11-06 01:23:17

标签: powershell sharpsvn

尝试使用powershell脚本自动执行早上更新多个subversion工作副本的仪式。 svn update工作正常,但最好挂钩SvnUpdateResult以显示更改或任何冲突。

我已经为更新结果指定了输出参数,但我不确定如何克服模糊的重载异常?我已经指定了参数类型:

try {
    Add-Type -Path "C:\Program Files\SharpSVN\SharpSvn.dll"
}
catch [System.BadImageFormatException] {
    Write-Host "LFMF: You're probably using 32bit SharpSVN.dll in 64bit powershell ;-)"
}
$paths = @("Project-Trunk", "Project-Branch");
$currentPath = (Get-Location).Path
$svnClient = New-Object SharpSvn.SvnClient
foreach ($path in $paths) {
    Write-Host "Updating" $path
    $svnLocalPath = Join-Path $currentPath $path;
    # Throws: Multiple ambiguous overloads found for "Update" and the argument count: "2".
    $svnClient.Update([string]$svnLocalPath, [ref][SharpSvn.SvnUpdateResult]$result)
}

我很欣赏我可以使用svn客户端或tortoiseproc,但我正在尝试了解有关powershell的更多信息。

1 个答案:

答案 0 :(得分:1)

结果参数是C#out参数,而不是ref参数。 (在IL级别上,输出参数是ref参数,但我猜想powershell会以不同方式处理它)

如果输出参数有问题,也可以从通知处理程序中获取相同的信息。