Как проверить, находится ли файл под контролем источника в SharpSvn?
Привет, я использую библиотеки С# и SharpSvn. Я хотел бы проверить, находится ли файл под контролем источника, прежде чем добавлять его в SvnClient.Add. Когда я делаю это в файле, который уже находится под SVN, я получаю ошибку: "уже находится под управлением версиями".
Ответ 1
Это довольно хорошо демонстрирует, как это сделать, используя статус
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));
}
Ответ 2
Если вы хотите узнать, находится ли файл под контролем источника, вы можете использовать .Info()
/.GetInfo()
. Этот метод, как правило, быстрее, поскольку он не должен проверять, изменился ли файл с момента его извлечения.