Яка різниця між git-tf та git-tfs?


76

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

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


2
Я відчуваю тебе. Чим раніше ви зможете скинути TFS, тим краще. Тоді просто перейдіть по прямому командному рядку за допомогою MSysGit. Більше нічого не турбуй. Останні 5 років добре працював у мене.
Адам Димітрук,

6
@AdamDymitruk Я працюю з досить відкритою командою і тому подібною, тому це може статися одного дня, але зараз це занадто дорого, щоб просто відмовитись, оскільки в TFS у нас є багато інших речей, ніж вихідний код
Earlz,

Відповіді:


91

Застереження: Я розпочав git-tfпроект, і хоча проект зараз перебуває у дуже спроможних руках без мене, як того, хто часто дописується, ви повинні абсолютно вважати мою думку щодо цього суворо необ'єктивною. (І, припускаючи, що ви працюєте в Windows, можливо, несподівано.)

Існують дві основні відмінності між двома інструментами:

  • git-tfsбув створений для користувачів Windows і написаний поверх SDK .NET TFS. 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. Це може бути надзвичайно корисним для візуалізації ваших змін. (Якщо я пам’ятаю, ви можете відкрити відповідний візуальний розрізнення звідти тощо).

  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досягло кінця життя . Він більше не підтримується та не підтримується корпорацією Майкрософт. Ми рекомендуємо, git-tfsякщо ви хочете двонаправлене рішення TFS <-> git.


2
Отже, в основному використовувати git-tf на не-Windows і git-tfs на Windows?
Earlz

9
Схоже, я піду з git-tfs. Я ні за яких обставин ніколи не встановлюватиму Java на свій dev box.
ATL_DEV

Через рік, скільки з цього все ще правда?
Жоао Портела,

Для більших репозиторіїв git-tfs не трапляються винятки з нестачею пам'яті, як це робить git-tf. Практично єдиним аргументом для git-tf є це xplat.
Andrew Clear

Тепер, коли .Net працює скрізь, можливо, час перенести ваш? :)
Mrchief

30

Застереження: Я розробник проекту git-tfs

Редагувати: git-tf більше не підтримується ...

Змінити: git-tfs також активно не підтримується .

Існує підтримка розгалуження TFS в git-tfs (отримання існуючих гілок, створення гілок, злиття гілок простіше, ніж у TFS, ... за допомогою branchкоманди). Це працює більшу частину часу, але не зі складними робочими процесами гілок TFVC ...

Подивитися:

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

І деякі інші хороші особливості ...

(І він більш активний і підтримується )


6

Кому, хто знайшов цю тему:

Git-TFбуло офіційно припинено після того, як не було оновлено після 2013 року, і тепер явно пропонується Git-TFSяк альтернатива.

Кінець життя Git-TF

Git-TF досягло кінця свого життя. Він не матиме подальших оновлень і більше не підтримується корпорацією Майкрософт.

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

Якщо вам потрібні більш розширені потреби перетворення або ви хочете зв'язати сховище TFVC і працювати з локальним сховищем Git, ми рекомендуємо проект git-tfs .

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

(Розділ доданий на сторінку кодового комплексу проекту в квітні 2017 року Едвардом Томсоном, його ініціатором та автором прийнятої відповіді)

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.