11

我有一个 Powershell Cmdlet,它通过 SharpSvn 从主干创建 SVN 分支。存储库包含有和没有显式设置的修订/ pegRevision 的外部。在分支中,所有没有修订集的外部都应该在创建分支时对其 HEAD 修订,未来的更改不会影响分支。

因此,我将外部信息提取到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);
}

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

4

0 回答 0