перечисление всего содержимого папки в TFS - PullRequest
5 голосов
/ 13 июля 2010

Учитывая определенный путь к папке в tfs, мне нужно рекурсивно найти все файлы и папки в папке для данного набора изменений. Другими словами, мне нужно получить транзитивное замыкание пути в TFS для данного набора изменений. Проблема, с которой я сталкиваюсь при этом, заключается в перечислении содержимого определенной папки в tfs .. Как это было бы возможно в C #?

Ответы [ 4 ]

7 голосов
/ 14 июля 2010

Я предполагаю, что вы хотите «содержимое папки с набором изменений X», а не «содержимое папки, которое было частью набора изменений X»

GetItems - это правильный вызов для использования, просто передайте спецификацию версии дляинтересующий вас набор изменений.

http://msdn.microsoft.com/en-US/library/bb138911.aspx

так что, если у вас уже есть ссылка на экземпляр VersionControlServer:

var myFolderAtChangeset17 = versionControlServer.GetItems("$/MyFolder", new ChangesetVersionSpec(17), RecursionType.Full);

Если я вас неправильно понялслучается, что вам нужно «содержимое папки, которая была частью набора изменений X», есть несколько различных способов сделать это, но получить набор изменений с помощью GetChangeset и просто отфильтровать изменения довольно просто.

2 голосов
/ 13 июля 2010

Нечто подобное может быть больше, чем вы ищете.Это получает все изменения в наборе изменений и перебирает их, идентифицируя изменения в заданном пути.Это можно было бы сократить с помощью запроса linq, но я оставляю его более расширенным, чтобы дать суть того, что я пытаюсь сказать:

0 голосов
/ 13 июля 2010

Я думаю, что-то вроде этого будет работать ..


    TeamFoundationServer tfs = new TeamFoundationServer("http://tfs:8080");   
    VersionControlServer vcs = tfs.GetService();   
    ItemSet items;

    items = vcs.GetItems(tfsPath, RecursionType.Full);

Если у вас есть другие идеи, пожалуйста, напишите их ..

0 голосов
/ 13 июля 2010

Вы можете использовать веб-сервис набора изменений, чтобы получить документ XML, который содержит все измененные элементы для определенного набора изменений. Затем просто прокрутите список измененных элементов и посмотрите, находятся ли они на пути, который вы ищете.

Вот URL-адрес веб-службы набора изменений:

http://your_tfs_server/VersionControl/Changeset.aspx?artifactMoniker=your_changeset_number&webView=true

...