使用TFS對象模型時,可以使用VersionControlServer.SetPermissions方法設置項目級ACL。此方法接受PermissionChange繼承的SecurityChange對象數組。 PermissionChange類爲允許權限,拒絕權限和刪除(爲了將某個權限重置爲未設置)接受字符串數組。然後可以使用VersionControlServer.GetPermissions方法查看這些項級權限。TFS:是否可以從版本控制中刪除項目權限對象?
當項目級權限的設定由VersionControlServer.SetPermissions方法,一個新的權限對象被設置爲用於該項目的服務器路徑的ServerItem創建。權限對象具有一個Entries屬性,該屬性包含在源控件中的項目上定義的每個用戶或組的所有條目,即使該用戶或組的所有權限都被繼承。此外,即使重置以前在項目上設置的權限,權限對象仍保留在服務器上,即使它不包含未繼承的條目。
總之,似乎隨着時間的推移,這些權限的大小對象是嚴格遞增。由於大量信息被返回(例如在分支級別),這些方法的性能開始受到影響,並且我不知道任何種類的RemovePermissions方法來清除這些方法。這樣的事情存在嗎?我該如何去除這些永久性的東西,以便這些項目能夠透明地繼承它們的ACL,而不會在服務器上定義這些混亂對象?
您使用的是什麼版本的TFS服務器?如果是2010年或更晚,有一種解決方法,我可以解釋這一點。 – 2012-04-27 15:10:51
我們正在使用tfs 2010,是的。 – bwerks 2012-04-27 16:00:50
看到下面,讓我知道你是否有任何問題。 – 2012-04-29 20:37:16