약 tf permission (예 : tf permission /inherit:yes itemSpec
)입니다. 그러나/recursive 스위치는 작동하지 않습니다. 나는 ... 나는 재귀 적으로 실행 뭔가를 쓸 수 추측
편집 : 나는 마침내 그것을위한 도구 작성에 주변에있어이에 대한
static int Main(string[] args)
{
if (args.Length == 0 || args.Any(a => !a.StartsWith("$/")))
{
Console.WriteLine("Removes all explicit permissions and enables inheritance for a subtree.\n"
+ "Example: " + Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location) + " $/project/path1 $/project/path2");
return 3;
}
WorkspaceInfo wi = Workstation.Current.GetLocalWorkspaceInfo(Environment.CurrentDirectory);
if (wi == null)
{
Console.WriteLine("Can't determine workspace for current directory: " + Environment.CurrentDirectory);
return 2;
}
var Tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(wi.ServerUri);
VersionControlServer VersionControlServer = Tfs.GetService<VersionControlServer>();
Console.WriteLine("Server: {0} Getting permissions...", wi.ServerUri);
ItemSecurity[] perms = VersionControlServer.GetPermissions(args, RecursionType.Full);
Console.WriteLine("Will remove explicit permissions from the following items:");
var changes = new List<SecurityChange>();
foreach (ItemSecurity perm in perms)
{
Console.WriteLine(" " + perm.ServerItem);
changes.Add(new InheritanceChange(perm.ServerItem, inherit: true));
foreach (AccessEntry e in perm.Entries)
{
changes.Add(new PermissionChange(perm.ServerItem, e.IdentityName, null, null, PermissionChange.AllItemPermissions));
}
}
Console.WriteLine("Enter to confirm:");
Console.ReadLine();
var successfulchanges = VersionControlServer.SetPermissions(changes.ToArray());
if (successfulchanges.Length == changes.Count)
{
Console.WriteLine("Explicit permissions removed from all items");
return 0;
}
else
{
Console.WriteLine("Explicit permissions removed only from:");
foreach (var c in successfulchanges)
{
Console.WriteLine(" " + c.Item);
}
return 1;
}
}
덕분에, 난 그냥 노력하고 시간을 보냈어요 어리석은 명백한 허가로 인해 지사를 지우는 것. 이 대구는 2 초 안에 그것을 고쳤습니다 :) – DaveShaw
이 코드를 어디서 실행합니까? 어떻게 사용하는지 말할 수 있습니까? 나는 어떤 폴더의 허락으로 분기를 삭제하거나 이름을 바꾸지 못하게하는 것과 비슷한 것으로 생각된다. –
@ mats-isaksson 새로운 콘솔 응용 프로그램을 만듭니다 –