如何使用SharpSVN以编程方式为文件夹添加“忽略列表”

时间:2010-02-23 01:31:08

标签: svn sharpsvn

如何以编程方式使用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的所有组合似乎都没有给我。)

解决方案:基于Bert的回答

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 个答案:

答案 0 :(得分:4)

忽略列表存储在包含要忽略的文件/目录的父目录的'svn:ignores'属性中。 (请参阅Subversion booksvn help propset

因此,要添加一个项目,您必须获取原始属性值(如果存在),然后添加用空格分隔的额外项目。 SvnClient上的函数是GetProperty和SetProperty()。