Контроль версий файлов в TFS

 

Подсистема контроля версий файлов в TFS позволяет работать из командной строки.

Находится эта утилита по умолчанию в C:\Program Files\Microsoft Visual Studio 8\Common7\IDE , имя файла tf.exe

Примеры:

  • Создание клиентской рабочей области, set mappings
    • tf workspace /template:WorkspaceName;username WS1 /s:https://servername:8080
  • Конфигурация diff средства
    tf diff /configure
  • Получение файлов
  • tf get
  • Открытие файла на редактирование
    tf edit foo.cs
  • Check in
    tf checkin
  • Бэкап работы в шелв
    tf shelve /i MyWork
  • Бэкап в шелв с возвратом к исходному состоянию
    tf shelve /i MyWork /move
  • Удаленный код ревью шелва
    tf unshelve CoolStuff;buckh

 

Вся документация по tf.exe находится на MSDN https://msdn2.microsoft.com/en-us/library/cc31bk2e(VS.80).aspx

 

 

Некоторые моменты о конфигурации diff –

1) Она доступна не только из командной строки но и через интерфейс VS via tools -> options -> source control -> visual studio team foundation server

2) Параметры передаются уже заключенные в кавычки

Вот настройки для наиболее распространенных систем:

 

Diff тулы:

Продукт

Команда

Аргументы

TFS default

diffmerge.exe

%1 %2 %6 %7 %5 /ignorespace

WinDiff

windiff.exe

%1 %2

DiffDoc (for Word files)

DiffDoc.exe

/M%1 /S%2

WinMerge

winmerge.exe

/ub /dl %6 /dr %7 %1 %2

Beyond Compare

bc2.exe

%1 %2 /title1=%6 /title2=%7

KDiff3

kdiff3.exe

%1 --fname %6 %2 --fname %7

Araxis

compare.exe

/wait /2 /title1:%6 /title2:%7 %1 %2

Compare It!

Wincmp3.exe

%1 /=%6 %2 /=%7

SourceGear DiffMerge

DiffMerge.exe

/title1=%6 /title2=%7 %1 %2

Merge тулы:

Продукт

Команда

Аргументы

TFS default

diffmerge.exe

/merge %1 %2 %3 %4 %6 %7

KDiff3

kdiff3.exe

%3 --fname %8 %2 --fname %7 %1 --fname %6 -o %4

Visual SourceSafe

ssexp.exe

/merge %1 %2 %3 %4 %6 %7

Araxis

compare.exe

/wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4

Beyond Compare (2-way merge)

bc2.exe

%1 %2 /savetarget=%4 /title1=%6 /title2=%7

WinMerge (2-way merge)

winmerge.exe

/ub /dl %6 /dr %7 %1 %2 %4

Guiffy

guiffy.exe

-s -h1%6 -h2%7 -hm%9 %1 %2 %3 %4

Ellie Computing

guimerge.exe

--mode=merge3 %3 %1 %2 --to=%4 --title0=%8 --title1=%6 --title2=%7 --to-title=%9

SourceGear DiffMerge

DiffMerge.exe

/title1=%6 /title2=%7 /title3=%8 /result=%4 %1 %2 %3

     

 

 

Если средств командной строки будет не хватать, то можно воспользоваться WebServicesAPITFS

TeamFoundationServer tfs = new TeamFoundationServer("https://tfsserver:8080");

VersionControlServer versionControl = (VersionControlServer) tfs.GetService(typeof(VersionControlServer));

//Получение информации о workspace (локального маппинга).

WorkspaceInfo wsInfo =
Workstation.Current.GetLocalWorkspaceInfo(Environment.CurrentDirectory);

// Stop if we couldn't figure out the workspace.

if (wsInfo == null)

{

    Console.Error.WriteLine("Unable to determine the workspace.");

    Environment.Exit(1);

}

 

//Получение референса на сервер

TeamFoundationServer tfs = new TeamFoundationServer(wsInfo.ServerUri.AbsoluteUri);

 

// Получение референса на воркспейс

Workspace workspace = wsInfo.GetWorkspace(tfs);

 

// Получение файлов в воркспейс.

workspace.Get();

 

 

Дополнительные ссылки на примеры:

* Простые примеры
https://blogs.msdn.com/buckh/archive/2006/03/15/552288.aspx

* Как показать метки
https://blogs.msdn.com/buckh/archive/2005/10/25/484854.aspx

* Как показать размер и даты файлов
https://blogs.msdn.com/buckh/archive/2005/10/26/485458.aspx

* Пример checkin политики
https://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx

* Показ текущих изменений с конкретного времени
https://blogs.msdn.com/jmanning/archive/2005/12/01/499033.aspx

* Сканирование истории в чейнджсетах с измененными checkin политиками https://blogs.msdn.com/jmanning/archive/2005/11/04/489193.aspx