11

SharpSvn を介してトランクから SVN ブランチを作成する Powershell コマンドレットがあります。リポジトリには、revision/pegRevision が明示的に設定されている場合とない場合の外部が含まれています。ブランチでは、リビジョンが設定されていないすべての外部は、ブランチの作成時に HEAD リビジョンにする必要があります。将来の変更はブランチに影響しません。

したがって、external-info を抽出し、次をSharpSvn.SvnExternalItem使用して見つかった各外部の現在の HEAD リビジョンをリポジトリにクエリします。SharpSvn.SvnClient.GetInfo(SvnTarget externalTarget, out SvnInfoEventArgs info)

したがって、ExternalInfo から SvnTarget に (または直接リビジョン情報に) 取得するための堅牢な方法が必要です。外部 URI の形式を制限したくありません。つまり、ここで示したすべての可能性が機能するはずです。これらすべての種類の URI を絶対 URI に解決するためのクリーンなソリューション、または最新のリビジョンを取得する別の方法は SharpSvn にありますか?

たとえば、次のようなものは素晴らしいでしょう (私は自分の外部 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