Как использовать SharpSVN для программной «добавления в список игнорирования» для папки - PullRequest
5 голосов
/ 23 февраля 2010

Как с помощью SharpSVN программно добавить папку в список игнорирования?

РЕДАКТИРОВАТЬ: Попытка:
Вот что я попробовал

svnClient.GetProperty(new SvnUriTarget("svn://svn.foo.com/" + DatabaseName + "/"), SvnPropertyNames.SvnIgnore, out ignores);
ignores += " Artifacts";
var args = new SvnSetPropertyArgs() { BaseRevision = ???, LogMessage = "update ignore list" };
svnClient.SetProperty(new Uri("svn://svn.foo.com/" + DatabaseName + "/"), SvnPropertyNames.SvnIgnore, ignores, args);

Но я не знаю, как получить BaseRevision (я могу получить его вручную, и это работает, но все комбинации GetProperty, которые я пробовал, похоже, мне его не дают).

РЕШЕНИЕ: на основании ответа Берта

SvnGetPropertyArgs getArgs = new SvnGetPropertyArgs(){};
string ignores = "Artifacts";
string result;
if(svnClient.GetProperty(new SvnUriTarget("svn://svn.foo.com/" + ProjectName + "/trunk/"), SvnPropertyNames.SvnIgnore,out result))
{
    ignores = result + " Artifacts"; //TODO: check for existing & tidy formatting.
}
svnClient.SetProperty(UncPath.TrimEnd('\\'), SvnPropertyNames.SvnIgnore, ignores);
SvnCommit(svnClient);

1 Ответ

4 голосов
/ 24 февраля 2010

Список игнорирования хранится в свойстве 'svn: ignores' в родительском каталоге, который содержит игнорируемый файл / каталог. (См. Subversion book или svn help propset)

Таким образом, чтобы добавить элемент, вы должны получить исходное значение свойства (если оно существует), а затем добавить дополнительный элемент, разделенный пробелом. Для этого в SvnClient используются функции GetProperty и SetProperty ().

...