2010-11-22 5 views
2

C#でTFS 2008プロジェクト/ディレクトリにラベルを適用する方法はありますか? は、私は、コマンドラインプログラムを知っている:CFSでTFS 2008適用ラベル

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

しかし、私はC#のコードでこれをやりたい、とC#からTF.exeのコマンドラインを実行する必要はありません。

答えて

3

次のコードスニペットは、特定のチェンジセット内のすべての変更にラベルを付けます。特定のパスのすべてのファイルにラベルを付けるように変更するのは簡単です。チェンジセットを反復する代わりに、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); 
    } 
関連する問題