private TrackMergeInfo GetTrackMergeInfo(MergeInfoViewModel mergeInfo, Changeset changeset, VersionControlServer versionControl)
{
var mergesRelationships = GetMergesRelationships(mergeInfo.SourcePath, versionControl);
var trackMerges = versionControl.TrackMerges(new[] {changeset.ChangesetId},
new ItemIdentifier(mergeInfo.SourcePath),
mergesRelationships.ToArray(),
null);
var trackMergeInfo = GetTrackMergeInfo(versionControl,
trackMerges, mergeInfo.SourcePath);
trackMergeInfo.FromOriginalToSourceBranches.Reverse();
trackMergeInfo.SourceComment = changeset.Comment;
trackMergeInfo.SourceBranch = mergeInfo.SourceBranch;
trackMergeInfo.SourceChangesetId = changeset.ChangesetId;
trackMergeInfo.SourceWorkItemIds = changeset.AssociatedWorkItems != null
? changeset.AssociatedWorkItems.Select(w => (long) w.Id).ToList()
: new List<long>(0);
trackMergeInfo.SourceWorkItemTitles = changeset.AssociatedWorkItems != null
? changeset.AssociatedWorkItems.Select(w => w.Title).ToList()
: new List<string>(0);
trackMergeInfo.OriginaBranch = trackMergeInfo.OriginaBranch ?? trackMergeInfo.SourceBranch;
trackMergeInfo.OriginalComment = trackMergeInfo.OriginalComment ?? trackMergeInfo.SourceComment;
return trackMergeInfo;
}