public static string GetBranchLocationForItem(VersionControlServer vcServer, string serverItem) { BranchObject[] rootBranches = vcServer.QueryRootBranchObjects(RecursionType.Full); string branchLocation = rootBranches .Where(b => { var branchItem = b.Properties.RootItem.Item; return VersionControlPath.GetCommonParent(branchItem, serverItem) == branchItem; }) .Select(b => b.Properties.RootItem.Item) .SingleOrDefault(); return branchLocation; }
private void InitTfsWorkspace() { tfsCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(RegisteredTfsConnections.GetProjectCollections().Single()); versionControlServer = tfsCollection.GetService<VersionControlServer>(); userName = tfsCollection.AuthorizedIdentity.UniqueName; workspace = versionControlServer.QueryWorkspaces(null, null, System.Environment.MachineName).Single(); workingFolders = workspace.Folders.Where(f => !f.IsCloaked).ToList(); tfsProjects = new List<TeamProject>(); folderByProject = new Dictionary<TeamProject, WorkingFolder>(); foreach (var folder in workingFolders) { var project = workspace.GetTeamProjectForLocalPath(folder.LocalItem); if (!folderByProject.ContainsKey(project)) { tfsProjects.Add(project); folderByProject.Add(project, folder); } } ProjectsCombo.ItemsSource = tfsProjects; allBranches = versionControlServer.QueryRootBranchObjects(RecursionType.Full); }