Я пытаюсь найти эффективный способ получить предыдущую версию файла для сравнения текста с использованием SharpSVN.
using (SvnClient c = new SvnClient())
{
c.Authentication.DefaultCredentials = new NetworkCredential(
ConfigurationManager.AppSettings.Get("SvnServiceUserName")
, ConfigurationManager.AppSettings.Get("SvnServicePassword")
, ConfigurationManager.AppSettings.Get("SvnServiceDomain")
);
c.Authentication.SslServerTrustHandlers += new EventHandler<SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers);
Collection<SvnFileVersionEventArgs> fileVersionCollection = new Collection<SvnFileVersionEventArgs>();
SvnRevisionRange range = new SvnRevisionRange(0, this.hooks.Revision);
SvnFileVersionsArgs args = new SvnFileVersionsArgs();
args.RetrieveProperties = true;
args.Range = range;
foreach (SvnChangeItem item in log.ChangedPaths)
{
string path = this.repositoryPath + item.Path;
bool gotFileVersions = false;
try
{
if (item.NodeKind == SvnNodeKind.File)
gotFileVersions = c.GetFileVersions(SvnTarget.FromString(path), args, out fileVersionCollection);
Приведенный выше код является примером выполнения моего запроса, однако он крайне неэффективен. Моя цель - иметь возможность выбрать ревизию, а также предыдущую ревизию. Например, если мой репозиторий имеет версию r185, но я хочу просмотреть файл версии 100, а также просмотреть предыдущую версию того же файла (о которой я не знаю), как это можно сделать?
Я просмотрел c.GetInfo(), но, похоже, это только возвращает предыдущую версию к самой последней фиксации.
Спасибо!