Как проверить, находится ли файл под контролем исходного кода в SharpSvn?

StackOverflow https://stackoverflow.com/questions/868701

  •  22-08-2019
  •  | 
  •  

Вопрос

Привет, я использую C# и библиотеку SharpSvn.Я хотел бы проверить, находится ли файл под контролем источника, прежде чем добавлять его с помощью SvnClient.Add.Когда я делаю это с файлом, который уже находится в SVN, я получаю ошибку:«уже находится под контролем версий».

Это было полезно?

Решение

Это довольно хорошо демонстрирует, как это сделать, используя статус.

using(SvnClient client = new SvnClient())
{
    SvnStatusArgs sa = new SvnStatusArgs();
    sa.Depth = SvnDepth.Empty; // Adjust this to check direct files, or (recursive) directories etc

    Collection<SvnStatusEventArgs> statuses;
    client.GetStatus("c:\\somefile.txt", sa, out statuses); 

    Assert.That(statuses.Count, Is.EqualTo(1));
    Assert.That(SvnStatus.NotVersioned, Is.EqualTo(statuses[0].LocalContentStatus));
}

Другие советы

Если вы хотите только знать, находится ли файл под контролем источника, вы можете использовать .Info() / .GetInfo().Этот метод обычно быстрее, поскольку не нужно проверять, изменился ли файл с момента его извлечения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top