如何使用SharpSvn从SVN-external中的相对URI正确检索SVN-Info

Sim*_* D. 10 c# svn powershell external sharpsvn

我有一个Powershell Cmdlet,它通过SharpSvn从主干创建SVN-Branches.存储库包含明确设置有和没有revision/pegRevision的外部.在分支中,没有修订集的所有外部应该在分支创建时进行HEAD修订,未来的更改不会影响分支.

因此,我将external-info解压缩SharpSvn.SvnExternalItem并查询存储库,以查找使用的每个外部找到的当前HEAD修订版SharpSvn.SvnClient.GetInfo(SvnTarget externalTarget, out SvnInfoEventArgs info)

因此,我需要一种强大的方法来从ExternalInfo到SvnTarget(或直接到修订信息).我不想限制外部URI的格式,即此处显示的所有可能性应该有效.SharpSvn中是否有一个干净的解决方案来将所有这些类型的URI解析为绝对URI或另一种检索其最新版本的方法?

例如,这样的事情会很棒(我知道我的外部uri和定义外部的目录的绝对URI,这对于相对URI肯定是必需的):

public SvnTarget ResolveExternalUri(SvnUriTarget aOwningDirectory, string aExternalReferenceUri) {
  // yeah, I know this does not exist (yet?)
  return SvnUri.Combine(aOwningDirectory.Uri, aExternalRefferenceUri);
}
Run Code Online (Sandbox Code Playgroud)

目前我只是自己解析外部URI字符串,检查它是相对的还是绝对的并且处理那些'^'和'//'前缀,但我不确定我是否支持所有变体而且我认为这应该是一个很常见的任务,已经可以通过SvnClient-lib中的一些隐藏的gem来解决.