Как правильно извлечь SVN-Info из относительного URI в SVN-external с помощью SharpSvn

У меня есть командлет Powershell, который создает SVN-ветви из магистрали через SharpSvn. Репозиторий содержит внешние компоненты с явно заданной и не установленной редакцией /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.

0 ответов

Другие вопросы по тегам