예제 #1
0
        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;
        }
예제 #2
0
        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);
        }