tags:

views:

195

answers:

1

How do I use SharpSVN to programatically to add a folder to the ignore list?

EDIT: Attempted:
Here's what I've tried

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);

But I don't know how to get the BaseRevision (I can get it manually, and that works, but all the combinations of GetProperty I tried don't seem to give it to me.)

SOLUTION: Based on Bert's Answer

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);
+2  A: 

The ignore list is stored in the 'svn:ignores' property on the parent directory that contains the to be ignored file/directory. (See the Subversion book or svn help propset)

So to add an item you have to get the original property value (if one exists) and then add the extra item separated with whitespace. The functions on SvnClient for this are GetProperty and SetProperty().

Bert Huijben
that's helpful, but I'm still missing some details to get it working (see edited question)
Myster
I don't have a local path, I have a UNC path. If I call 'SetProperty' like so: svnClient.SetProperty("\\\\dev1\\www\\www.automan.foo.com\\", "svn:ignore", " Artifacts"); I get the exception: "'\\dev1\\www' is not a working copy"
Myster
Not 100% sure, but I think this indicates that the www.automan.foo.com file is not a workingcopy either (probably not even a directory) and you can only set svn:ignore properties on working copy directories.
Bert Huijben
Ahh got it, I've removed the trailing slash and it works fine.
Myster