1

PowerShell スクリプトを使用して、複数の Subversion 作業コピーを更新するという朝の儀式を自動化しようとしています。svn の更新は正常に機能していますが、 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 client または tortoiseproc を使用できたことに感謝していますが、powershell についてもっと学ぼうとしています。

4

1 に答える 1

1

結果引数は、ref 引数ではなく、C# の out 引数です。(IL レベルでは、出力引数は ref 引数ですが、powershell では別の方法で処理されると思います)

出力引数に問題がある場合は、通知ハンドラから同じ情報を取得することもできます。

于 2012-11-07T10:55:31.420 に答える