5

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

1 に答える 1

4

無視リストは、無視するファイル/ディレクトリを含む親ディレクトリの「svn:ignores」プロパティに保存されます。( Subversion ブックまたはを参照svn help propset)

したがって、項目を追加するには、元のプロパティ値 (存在する場合) を取得してから、空白で区切られた余分な項目を追加する必要があります。このための SvnClient の関数は GetProperty と SetProperty() です。

于 2010-02-24T12:36:55.153 に答える