Я использую Экспорт () функция членства для получения файлов в определенных изменениях, который работает, но по некоторым причинам в других случаях это не. Для всех измененных путей это, кажется, работает однако с удаленными и иногда добавляемыми файлами в том пересмотре, я получаю исключение, заявляя, что нет никакого файла в используемом URL. Когда я использую TurtoiseSVNs "Пересмотр копии...", на этих путях он хорошо работает, и я просто задаюсь вопросом, пропускаю ли я что-то с SharpSVN, я хотел бы полные версии в пересмотре всех измененных файлов. Вот общее представление о моем коде:
if (logentry.ChangedPaths != null)
{
foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths)
{
SvnExportArgs ex = new SvnExportArgs();
ex.Revision = revisionNum;
client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex);
}
}
Любая справка или предложения ценились бы, спасибо.
Я обнаружил, что использование SvnUriTarget вместо простого uri с SvnExportArgs позволило мне получить правильную информацию. Не совсем уверен, почему они разные, но это работает.
поэтому вместо экспорта, приведенного выше, я использовал:
client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex);
Ответ, который я нашел, был на текст ссылки
Клиент командной строки имеет такое же поведение. Дело в том, что URL-адреса, указывающие на файл, могут появляться и исчезать. Это означает, что URL, указывающий на файл, который сейчас удален, недействителен, если только вы не укажете, что хотите использовать более старый URL. Это называется ревизией привязки.
Читайте о peg-ревизиях в svnbook.