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 關注
- 187 瀏覽
添加回答
舉報