2016-10-18 3 views
0

Я пытаюсь написать пакетный скрипт для перемещения файлов проекта сайта, экспортируя из TFS &, добавляя сервер приложений. Требование состоит в том, чтобы экспортировать/импортировать все файлы, присутствующие в наборе изменений.Как получить имя всех файлов, присутствующих в наборе изменений с использованием командной строки TFS

Я хочу, чтобы все имена файлов присутствовали в наборе изменений, используя командную строку. Имя файла затем можно использовать для выполнения tf доступа к конкретному файлу.

Я попытался, тс hostory & тс ревизии команды

Но при макс, команда тс ревизии дает следующий результат -:

Changeset: 151 User: Ashish Chandra Gupta Date: 11 October 2016 11:38:54 

Комментарий: Изменение 6 (Ashish)

Элементы: редактировать $/SMT/SMT/CNSMT002.aspx.vb

мне нужно конкретное имя файла - CNSMT002.aspx.vb

ответ

1

Вы могли бы быть в состоянии сделать то же самое в PowerShell, но я хотел бы предложить, что вы использовали REST TFS Api и JsonConvert как это:

 var collectionUrl = "http://YOURSERVER:8080/tfs/DefaultCollection/"; 
     var client = new WebClient { UseDefaultCredentials = true }; 

     var changesetId = 181972; 

     string json = client.DownloadString($"{collectionUrl}_apis/tfvc/changesets/{changesetId}/changes?api-version=1.0"); 
     XDocument document = JsonConvert.DeserializeXNode(json, "changeset"); 
     var files = document.Descendants("path"); 
     foreach (var file in files) 
     { 
      Console.WriteLine(file.Value); 
     } 

Возможно, вам придется обрабатывать вещи по-разному в зависимости от добавления, изменения или удаления файлов.

JsonConvert можно получить, установив пакет NuGet Newtonsoft.Json. Вы можете создавать специализированные десериализаторы, если хотите делать более мелкозернистые вещи, но выше - быстрый и грязный способ извлечения имен файлов.

+0

Спасибо. Это сработало. –

+0

Может ли API-интерфейс TFS REST использоваться для получения конкретных наборов изменений, создания рабочего пространства и т. Д., Которые могут быть выполнены с использованием командной строки TFS. –

+0

@AshishChandra Да, вы можете использовать API REST TFS для получения определенного файла. Насколько я вижу, вы не можете создавать/редактировать рабочие области. –

-1
@echo off 
SET tfs=http://YOUR_TFS_SERVER:8080/ 
:number 
ECHO Enter changeset number (0 to exit): 
SET /p chg= 
IF NOT %chg% GTR 0 GOTO end 
"%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\TF.exe" changeset /server:%tfs% %chg% /noprompt 
GOTO number 
:end 

Источник: https://coderwall.com/p/aqypwq/get-a-copy-pasteable-list-of-files-from-a-changeset-in-tfs

+0

Это похоже на то, что уже было опробовано в вопросе. –