2 回答
TA贡献2003条经验 获得超2个赞
根据你的描述,VersionControlServer.TrackMerges()就是你要使用的API。
TrackMerges(array<Int32[], ItemIdentifier, array<ItemIdentifier[], ItemSpec)
获取从源项到一组目标项的合并,以获取源变更集 ID 列表。
在 sourceItem 参数中,传递要跟踪更改的分支的根。在 targetItems 参数中,传递要将变更集跟踪到的分支的根。请注意,这仅适用于具有合并关系的分支根。确保这一点的最佳方法是查看分支层次结构并使分支直接相关或通过某些路由相关。
假设您想在这样的分支层次结构中跟踪从 $/Proj/Main 到 $/Proj/Feature2 的变更集:
$/Proj/Main $/Proj/Dev $/Proj/Feature2然后,您希望将 $/Proj/Main 作为您的 sourceItem 和 $/Proj/Dev 和 $/Proj/Feature2 作为 targetItems 传递。
更多详细代码和示例请参考此博客:TFS API - TRACK CHANGESET MERGE IN BRANCHES
TA贡献1856条经验 获得超5个赞
可能有更有效的方法来做到这一点,但您可以使用以下内容查询相应分支的历史记录:
// pseudo code
var parameter = new QueryHistoryParameters();
parameter.RecursionType = RecursionType.Full;
parameter.IncludeChanges = true;
// set other members to potentially filter out unneeded stuff
// especially, say, "VersionStart" / "VersionEnd".
var result = workspace.VersionControlServer.QueryHistory(parameter);
foreach (var entry in result)
{
// Compare "entry.ChangesetId" with the ID of the changeset you're looking for.
}
请注意,可以通过不同方式收集对 VersionControlServer 接口的引用。上面我假设您已经有了工作区参考。
- 2 回答
- 0 关注
- 149 浏览
添加回答
举报