Какая разница между git -tf и git -tfs?

Недавно я очень устал от TFS. Я слышал, что есть свет в конце туннеля. По-видимому, я могу использовать git -tf или git -tfs и обрабатывать свой код так, как если бы он управлялся с помощью git, но мог бы нажимать/тянуть на/с центрального сервера TFS.

Мой главный вопрос: я не уверен, какой из них я должен использовать. Существует git -tf, который официально поддерживается Microsoft, и существует git -tfs, который был вокруг намного дольше. Каковы различия между ними и с чем я должен сначала попробовать?

Ответ 1

Отказ от ответственности: я запустил проект git-tf и хотя проект сейчас находится в очень способных руках без меня, как частого участника, вы должны абсолютно считать мое мнение по этому поводу сильно предвзятым. (И, если вы находитесь на Windows, возможно, неожиданно.)

Есть два фундаментальных различия между этими двумя инструментами:

  • git-tfs был создан для пользователей Windows и написан поверх .NET TFS SDK. TFS SDK не будет работать под Mono, поэтому git-tfs подходит для кроссплатформенного использования.

  • git-tf был создан для кроссплатформенных пользователей и написан поверх Java TFS SDK. Таким образом, он будет работать в любом месте, которое поддерживается Java TFS SDK (Windows, Mac, Linux, AIX, HP-UX, Solaris и т.д.). git-tf был явно создан, чтобы позволить пользователям Xcode доступ к TFS.

На Windows, конечно, вы можете использовать либо. Я не собираюсь обязательно говорить, что одно лучше, чем другое. Но я скажу:

  1. Моя самая большая жалоба на git-tfs - это то, что она не будет работать на Mac OS. Если бы был способ сделать git-tfs кроссплатформенным, то git-tf почти наверняка не существовало бы.

  2. git-tfs в некоторых случаях работает быстрее, чем git-tf. Производительность не была нашим приоритетом в первых нескольких ревизиях, правильность была.

  3. Поскольку git-tf имеет широкую матрицу поддержки платформы, это означает, что его функциональность обязательно ограничена. Например, нет пользовательского интерфейса. git-tfs, с другой стороны, есть команда checkintool, которая откроет обычный диалог TFS Checkin. Это может быть исключительно полезно для визуализации ваших изменений. (Если я не забуду, вы можете открыть соответствующий визуальный отчет и т.д.)

  4. git-tf работает путем непосредственного заполнения хранилища git и загрузки объектов TFS непосредственно в базу данных объектов git. git-tfs работает, создавая отображение рабочей папки TFS в скрытой папке, затем заполняя из этого репозиторий git. Здесь есть штраф за диск, так что если у вас супергигромные репозитории, вы можете почувствовать это.

  5. git-tfs может попытаться отобразить ваши ветки TFS на ваши ветки git. Многие люди git-tfs это как позитив для git-tfs, хотя я не думаю: модель ветвления git (на уровне хранилища) и модель ветвления TFS (представленная в виде папок в хранилище) настолько радикально отличаются, что могут вызвать проблемы. во всем, кроме самых упрощенных рабочих процессов. Но ваш пробег может отличаться.

  6. git-tfs активно развивается сообществом. git-tf не было принятия сообщества.

Я не хочу, чтобы это звучало так, будто я говорю, что git-tf - это плохо. Не это. Я думаю, что это на самом деле довольно хорошо. Но это не может быть вашим лучшим выбором.


Обновление: git-tf достиг конца срока службы. Он больше не поддерживается и не поддерживается Microsoft. Мы рекомендуем git-tfs если вы хотите двунаправленное решение TFS <-> git.

Ответ 2

Отказ от ответственности: я разработчик проекта git-tfs

Редактировать: git-tf больше не поддерживается...

Редактировать: git-tfs также больше не поддерживается.

И теперь есть очень хорошая поддержка ветвления TFS в git-tfs (извлечение существующих веток, создание веток, объединение ветвей легче, чем с TFS,... с помощью команды branch).

Увидеть:

git-tfs также, пожалуй, единственный инструмент, который позволяет вам переходить с TFS (VC) на TFS (Git), управлять рабочими элементами при необходимости или обычным git-репозиторием.

И некоторые другие хорошие функции...

(И это более активно и более поддерживается)

Ответ 3

Кому найти эту тему:

Git-TF был официально прекращен после того, как он не был обновлен после 2013 года, и теперь явно предлагает Git-TFS в качестве альтернативы.

Git -TF Окончание срока службы

Git -TF достиг своего конца жизни. Он не будет иметь никаких дополнительных обновлений и больше не будет поддерживаться Microsoft.

Microsoft Visual Studio Team Services теперь предоставляет простой инструмент импорта для импорта репозитория Team Foundation Version Control в репозиторий Git. Мы рекомендуем использовать это для преобразования хранилищ TFVC в Git.

Если вам нужны более сложные потребности в преобразовании или вы хотите скрыть хранилище TFVC и работать с локальным репозиторием Git, , мы рекомендуем проект git -tfs.

Git -TF не должен использоваться для новых проектов, но он останется в архиве Codeplex для устаревших пользователей.

(раздел добавлен в проект codeplex page в апреле 2017 года Эдвардом Томсоном, его инициатором и автором принятого ответа)

Git-TFS, по-видимому, активно поддерживается: https://github.com/git-tfs/git-tfs/commits/master