Как стать автором
Поиск
Написать публикацию
Обновить

Tfs + Git = Friends

Сколько раз, работая в TFS, вы мечтали добавить в него некоторые возможности GIT, ну или наоборот?
Эта статья не для того, чтобы обсуждать плюсы и минусы каждой системы, а о том, как подружить их.

Для этого существет замечательный плагин git-tfs, созданный Richard Banks.
Он дает возможность использовать TFS source control как remote repository для GIT.


Думаю, если вы заинтересовались этой статьей, то студия с TFS у вас уже есть.
GIT тоже понадобится — тут можно подсмотреть как его установить http://habrahabr.ru/blogs/Git/125799/.

Дальше скачиваем плагин и добавляем в переменную окружения PATH путь к плагину. Можете скачать уже собранную версию, можете собрать сами. Дело вкуса…

1)Клонируем TFS
Для этого есть команда git tfs clone

git tfs clone tfs-url-or-instance-name repository-path local_git_folder

В процессе клонирования вас попросят ввести логин/пароль для доступа к TFS.

Предупреждение: не клонируйте в туже папку, где находится обычное рабочее пространство TFS. У вас должны быть две папки с исходниками: одна под управлением TFS, другая — GIT.

Когда вы откроете союлшен из папки GIT, он сразу же вспомнит, что был связанн с TFS, и попросит установить соединение. Этого делать не надо. Лучше перед открытием, отключите сетевой кабель или вайфай, а только потом открывайте солюшен. Когда вас спросят, хотите ли вы работать офлайн — немедленно соглашайтесь!

Еще, для предосторожности, можете создать локальный бранч, в котором удалите все биндинги на сорс контрол. Это вам, конечно, добавит работы и сейчас, и при дальнейших мерджах, но так чуточку безопаснее. Делать не делать — выбор за вами.

2) Откладываем изменения на полочку
Мы изменили локальный репозитарий и хотим синхронизировать эти изменения с TFS. Для этого у нас есть команда git tfs shelve. Она создаст shelve в TFS с тем именем, который вы зададите, от имени пользователя, которым вы залогинились.

git tfs shelve "my shelveset name"

После этого вам нужно будет вернуться в студию, которая использует TFS, забрать код, с только что созданной полочки, и закомитить его.

3) Комитим код на прямую
Опять же, внесли изменения и хотим их сдать в TFS. Можно и без полочек. Вот такой вот командой git tfs ct.
Вы увидите студийный check-in диалог, который покажет вам сдаваемые файлы и попросит комментариев к этому безобразию…

image

Это, к сожалению, работает только для TFS 2010.

4) Забираем обновления из TFS
Так, вносить изменения мы уже научились, аж двумя способами, теперь давайте изменения заберем. Мы ведь не сами работаем.

Сначала надо будет выполнить команду git tfs fetch. Она заберет все изменения из репозитария и вернет их нам, как помеченные объекты. Другими словами, они не будут напрямую применены к нашей копии, a мы это должны будем сделать это сами, вызвав команду git merge. Это необходимо для того, чтобы внести наши помеченные объекты в рабочую копию. Мердж можно сделать и из командной строки, и из Git Gui, и из TortoiseGit.

image

Вот и все. Все необходимые команды разобрали.

Спасибо за внимание!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.