代码之家  ›  专栏  ›  技术社区  ›  Dennis

TFS 2008应用带有C的标签#

  •  2
  • Dennis  · 技术社区  · 15 年前

    是否有方法将标签应用到带有C#的TFS 2008项目/目录? 我知道命令行程序:

    tf label SampleLabel $/Project1/Source/* /recursive /server:TFS1
    

    但我想用C#代码来实现这一点,并且不想从C#运行TF.exe命令行。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Robaticus    15 年前

    以下代码段标记特定变更集中的所有更改。更改它以标记特定路径中的所有文件应该很简单。不要遍历变更集,只需执行 vcServer.GetItems("$/Project1/path", RecursionType.Full) 然后迭代它们。

        private void LabelChangeset(string fileLabel, Changeset changeset)
        {
            VersionControlLabel vcl = new VersionControlLabel(vcServer, fileLabel, null, cbProjects.SelectedItem.ToString(), "Autogen label.");
    
            LabelItemSpec[] itemSpecs = new LabelItemSpec[changeset.Changes.Length];
    
            string ver = string.Format("C{0}", changeset.ChangesetId);
            VersionSpec fileVersion = VersionSpec.ParseSingleSpec(ver, null);
    
            int index = 0;
            foreach (Change c in changeset.Changes)
            {
                itemSpecs[index++] = new LabelItemSpec(new ItemSpec(c.Item.ServerItem, RecursionType.None), fileVersion, false);
            }
    
            LabelResult[] results = vcServer.CreateLabel(vcl, itemSpecs, LabelChildOption.Replace);
        }