TFS API 待处理项目、排除列表、包含列表
Posted
技术标签:
【中文标题】TFS API 待处理项目、排除列表、包含列表【英文标题】:TFS API Pending Items, Exclude list, Include List 【发布时间】:2020-04-01 03:29:00 【问题描述】:背景,
我正在制作一个 TFS 合并工具来满足开发和分支需求。
有了这个工具,我就有了一个使用 Microsoft.Teamfoundation.ExtendedClient 包的业务对象层。
我有什么
我目前有一个功能可以检查我的待处理项目
“更改”对象包含我的所有更改。包含和排除
Workspace workspace = _vcs.GetWorkspace(_workspaceName, _workspaceOwner);
WorkItemCheckinInfo checkInInfo = new WorkItemCheckinInfo(pbi, WorkItemCheckinAction.Associate);
PendingChange[] changes = workspace.GetPendingChanges();
ChangesetID = workspace.CheckIn(changes, checkInComment, null, new WorkItemCheckinInfo[]
checkInInfo , null);
我需要什么 我只需要获取他的“包含”待定更改列表。
有些人建议使用,但这失败了,因为 ITS 只有零行。
//get all candidate changes and promote them to included changes
PendingChange[] candidateChanges = null;
string serverPath = workspace.GetServerItemForLocalItem(_workspaceName);
List<ItemSpec> its = new List<ItemSpec>();
its.Add(new ItemSpec(serverPath, RecursionType.Full));
workspace.GetPendingChangesWithCandidates(its.ToArray(), true, out candidateChanges);
foreach (var change in candidateChanges)
if (change.IsAdd)
//ws.PendAdd(change.LocalItem);
else if (change.IsDelete)
//ws.PendDelete(change.LocalItem);
我也试过这个,但是 SavedCheckin = null 并且我得到了一个异常。
SavedCheckin savedCheckin = workspace.LastSavedCheckin;
// Create a list of pending changes.
var pendingAdds = new List<PendingChange>(workspace.GetPendingChanges());
List<PendingChange> excludedChanges = new List<PendingChange>();
for (int i = 0; i <= changes.Length - 1; i++)
if (savedCheckin.IsExcluded(changes[i].ServerItem))
excludedChanges.Add(changes[i]);
Console.WriteLine(changes[i].LocalItem.ToString() + " Change " + changes[i].ChangeType)
所以我要么需要遍历“更改”列表并删除“排除”项目
或者这里肯定缺少一些东西。
提前致谢
艾伦
【问题讨论】:
这能回答你的问题吗? how do I determine what items are included pending check-ins programatically? 【参考方案1】:在 Visual Studio/Team Explorer 中没有仅获取 Included changes
、Included/Excluded changes
部分的 TFS API。 Visual Studio 会检测您在系统外所做的更改。
你需要的是Visual Studio Extension API --IPendingChangesExt Interface,你可以参考下面的文章或者在Visual Studio Extension端开一个案例。
https://www.mztools.com/articles/2015/MZ2015007.aspx
【讨论】:
以上是关于TFS API 待处理项目、排除列表、包含列表的主要内容,如果未能解决你的问题,请参考以下文章