TFSオブジェクトモデルを使用する場合、アイテムレベルのACLはVersionControlServer.SetPermissionsメソッドで設定できます。このメソッドは、PermissionChangeが継承するSecurityChangeオブジェクトの配列をとります。 PermissionChangeクラスは、許可の許可、拒否のアクセス許可、および削除のための文字列の配列をとります(特定のアクセス許可をunsetに戻すため)。これらのアイテムレベルのアクセス許可は、VersionControlServer.GetPermissionsメソッドで表示できます。TFS:アイテムのアクセス許可オブジェクトをバージョンコントロールから削除できますか?
VersionControlServer.SetPermissionsメソッドでアイテムレベルのアクセス許可を設定すると、そのアイテムのサーバーパスにServerItemが設定された新しいアクセス許可オブジェクトが作成されます。アクセス許可オブジェクトには、そのユーザーまたはグループのすべてのアクセス許可が継承されていても、ソースコントロールの項目の上に定義された各ユーザーまたはグループのエントリを含むEntriesプロパティがあります。さらに、アイテムに以前に設定された権限をリセットしても、権限オブジェクトは継承されていないエントリを含んでいなくてもサーバー上に残ります。
つまり、これらのアクセス許可オブジェクトのサイズは時間の経過と共に厳しくなっているようです。これらのメソッドのパフォーマンスは、(ブランチレベルなどで)大量の情報が返されるために苦しみ始めています。これらのメソッドを削除するためのRemovePermissionsメソッドはわかりません。そんなことがあるの?これらのアイテムを永久に削除して、そのアイテムがサーバ上で定義されたクラッタオブジェクトなしでACLを継承できるようにするにはどうすればよいですか?
使用しているTFSサーバーのバージョンは何ですか? 2010年以降の場合は修正する方法があり、それを説明することができます。 –
私たちはtfs 2010を使用しています。 – bwerks
ご質問がある場合は下記をご覧ください。 –