В чем разница между git-tf и git-tfs?

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

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


person Earlz    schedule 12.10.2012    source источник
comment
Я сочувствую тебе. Чем раньше вы сможете сбросить TFS, тем лучше. Затем просто перейдите в командную строку с MSysGit. Не беспокойтесь ни о чем другом. У меня хорошо получалось последние 5 лет.   -  person Adam Dymitruk    schedule 13.10.2012
comment
@AdamDymitruk Я работаю с довольно открытой командой и так далее, так что однажды это может случиться, но сейчас слишком дорого просто отказаться, так как у нас в TFS есть много других вещей, кроме исходного кода   -  person Earlz    schedule 13.10.2012


Ответы (3)


Отказ от ответственности: я начал проект 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 (представленная в виде папок в репозитории) настолько радикально отличаются, что могут вызывать проблемы во всем но самые упрощенные рабочие процессы. Но ваш пробег может отличаться.

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

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


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

person Edward Thomson    schedule 12.10.2012
comment
Так что в основном использовать git-tf для не-Windows и git-tfs для Windows? - person Earlz; 13.10.2012
comment
Похоже, я выберу git-tfs. Я никогда не буду устанавливать Java на свой ящик разработчика ни при каких обстоятельствах. - person ATL_DEV; 12.11.2012
comment
Спустя год, насколько это все еще верно? - person João Portela; 29.10.2013
comment
Для больших репозиториев git-tfs не сталкивается с исключениями нехватки памяти, как git-tf. Практически единственный аргумент в пользу git-tf - это xplat. - person Andrew Clear; 09.01.2014
comment
Теперь, когда .Net работает повсюду, может быть, пришло время перенести ваш? :) - person Mrchief; 25.11.2014
comment
@Mrchief Mono много лет отлично справлялся с управлением .NET. Проблема не в коде .NET, а во внутреннем коде, который требуется в TFS SDK. - person Edward Thomson; 25.11.2014

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

Изменить: активность вокруг git-tfs снижена.

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

Видеть:

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

И еще несколько хороших функций ...

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

person Philippe    schedule 05.12.2012

Всем, кто найдет эту ветку:

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 в апреле 2017 года Эдвардом Томсоном, ее инициатором и автором принятого ответа)

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

person J Jones    schedule 21.09.2015