Довольно просто.
У меня есть рабочая демоверсия в моем блоге => http://geekswithblogs.net/TarunArora/archive/2011/06/26/tfs-2010-sdk-smart-merge-programmatically-create-your-own-merge.aspx
Отредактированный
Мне очень жаль, что я неправильно понял ваш вопрос. То, что вы ищете, - это возможность получить changesetId на основе определенного пути к файлу в TFS, а затем возможность видеть измененные элементы для этого набора изменений, а затем возможность видеть модификацию в исходном коде и знать, кто автор этого изменения источника Правильно?
Если это так, не могли бы вы сделать следующее,
public static void GetMergeDetailsForChangeSet()
{
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("Enter the url of team project"));
var versionControl = tfs.GetService<VersionControlServer>();
var a = versionControl.GetChangeset(12322);
VersionSpec changeSpec = new ChangesetVersionSpec(a.Changes[0].Item.ChangesetId);
var changeSetDetails = a.Changes[0].Item.VersionControlServer.QueryMergesWithDetails(
null,
null,
0,
a.Changes[0].Item.ServerItem,
changeSpec,
a.Changes[0].Item.DeletionId,
changeSpec,
changeSpec,
RecursionType.Full);
}
- В моем блоге показано, как программно получать наборы изменений из TFS
- Теперь, когда у вас есть набор изменений, вы можете получить измененный файл.
- В приведенном выше примере я получаю детали слияния из этой ревизии. В вашем случае вам придется использовать GetItems (String, VersionSpec, RecursionType, DeletedState, ItemType, Boolean)
- У объекта changeset есть свойство 'Owner', которое сообщит вам, кто является автором изменения.
- Теперь, если вы хотите выбрать сведения о первом наборе изменений в этом списке, вам нужно получить доступ к Item.VersionControlServer, см. Подробности здесь http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.item.versioncontrolserver.aspx
Помогает ли это, могу ли я предоставить дополнительную информацию?
НТН.
Приветствия, Тарун