我倒是希望更新施加到分支編程的標籤。在尋找可以做到這一點的方法時,我找到了VersionControlServer.CreateLabel() - Method。 https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.createlabel(v=vs.120).aspx如何通過使用VersionControlServer.CreateLabel()[C#]來更新TFS標籤[TFS]
我試了一下這樣的,但它似乎doesn't工作:
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(tfsuri));
var vcs = tfs.GetService<VersionControlServer>();
string labelscope = "$/MyProjects/" + machinenumber;
var specifiedBranch = vcs.QueryLabels(label, labelscope, null, true);
string branch = specifiedBranch[0].Items[0].ServerItem;
ItemSpec newItemSpec = new ItemSpec(branch, RecursionType.Full);
string newItem = specifiedBranch[0].Items[0].ServerItem;
newItemSpec.Item = newItem;
VersionSpec versSpec = new LabelVersionSpec(label);
LabelItemSpec newLabelItemSpec = new LabelItemSpec(newItemSpec, versSpec, false);
LabelItemSpec[] newLabelItemSpecList = new LabelItemSpec[1] { newLabelItemSpec };
string labelOwner = vcs.AuthenticatedUser;
string labelName = label.Insert(6, "ed");
VersionControlLabel labelToUpdate = new VersionControlLabel(vcs, labelName, labelOwner, branch, null);
vcs.CreateLabel(labelToUpdate, newLabelItemSpecList, LabelChildOption.Replace);
我究竟想要做的是從「部署」到「部署」更新舊標籤名稱。我知道如何使用TF.exe執行此操作,但它應該在沒有TF.exe的情況下運行。
有沒有人有代碼示例如何使用CreateLabel() - Methode更新現有標籤?
- 更新 -
我改變
LabelItemSpec newLabelItemSpec = new LabelItemSpec(newItemSpec, versSpec, true);
到
現在針對同一分支建立的新標籤。我不能用VersionControlServer.DeleteLabel刪除舊標籤。然後我得到我正在尋找的結果,但我仍然想知道如何正確更新。
謝謝您的回覆。我之前和之前曾經寫過這篇文章,我發現了一種通過刪除舊標籤並設置新標籤來解決問題的方法。所以對我來說沒問題。但是「創建或更新」是什麼意思?正如在描述行中所寫:https://msdn.microsoft.com/en-us/library/bb138611(v=vs.120).aspx。我會認爲「更新」意味着我可以更新標籤名稱。 – L4c0573
已更新我的回答供您參考。 –
好的非常感謝你!現在對我來說很清楚。 – L4c0573