Haftungsausschluss: Ich habe das git-tfProjekt gestartet und obwohl das Projekt jetzt ohne mich als häufigen Mitwirkenden in sehr kompetenten Händen ist, sollten Sie meine Meinung dazu unbedingt als stark voreingenommen betrachten. (Und wenn Sie Windows verwenden, ist dies möglicherweise unerwartet.)
Es gibt zwei grundlegende Unterschiede zwischen den beiden Werkzeugen:
git-tfswurde für Windows-Benutzer erstellt und auf das .NET TFS SDK geschrieben. Das TFS SDK wird nicht unter Mono ausgeführt, daher ist git-tfses für die plattformübergreifende Verwendung ungeeignet.
git-tfwurde für plattformübergreifende Benutzer entwickelt und auf das Java TFS SDK geschrieben. Daher kann es überall dort ausgeführt werden, wo das Java TFS SDK unterstützt wird (Windows, Mac, Linux, AIX, HP-UX, Solaris usw.). Es git-tfwurde explizit erstellt, damit Xcode-Benutzer auf TFS zugreifen können.
Unter Windows können Sie natürlich beides verwenden. Ich werde nicht unbedingt sagen, dass einer besser ist als der andere. Aber ich werde sagen:
Meine größte Beschwerde git-tfsist, dass es unter Mac OS nicht funktioniert. Wenn es eine Möglichkeit gäbe, git-tfsplattformübergreifend zu arbeiten, git-tfwürde es mit ziemlicher Sicherheit keine geben.
git-tfsist in einigen Fällen schneller als git-tf. Leistung war nicht unsere Priorität in den ersten Überarbeitungen, Korrektheit war.
Aufgrund git-tfder breiten Plattformunterstützungsmatrix ist die Funktionalität zwangsläufig eingeschränkt. Zum Beispiel gibt es keine Benutzeroberfläche. git-tfsAuf der anderen Seite gibt es einen checkintoolBefehl, der das normale TFS-Eincheckdialogfeld öffnet. Dies kann bei der Visualisierung Ihrer Änderungen besonders hilfreich sein. (Wenn ich mich recht erinnere, können Sie von dort aus einen geeigneten visuellen Unterschied usw. öffnen.)
git-tffunktioniert, indem das Git-Repository direkt aufgefüllt und TFS-Objekte direkt in die Git-Objektdatenbank heruntergeladen werden. git-tfsfunktioniert, indem eine TFS-Arbeitsordnerzuordnung in einem versteckten Ordner erstellt und dann das Git-Repository daraus gefüllt wird. Hier gibt es eine Festplattenstrafe. Wenn Sie also über enorme Repositorys verfügen, können Sie dies spüren.
git-tfskann versuchen, Ihre TFS-Zweige Ihren Git-Zweigen zuzuordnen. Viele Leute werden dies als positiv empfinden git-tfs, obwohl ich es nicht tue: Das Verzweigungsmodell von git (auf Repository-Ebene) und das Verzweigungsmodell von TFS (dargestellt als Ordner im Repository) unterscheiden sich so radikal, dass sie Probleme verursachen die einfachsten Workflows. Ihr Kilometerstand kann jedoch variieren.
git-tfswird aktiv von einer Community entwickelt. git-tfhat die Community nicht adoptiert.
Ich möchte nicht, dass es so klingt, als wäre git-tfes schlecht. Es ist nicht. Ich finde es eigentlich ziemlich gut. Aber es ist möglicherweise nicht Ihre beste Wahl.
Update: git-tfhat das Ende der Lebensdauer erreicht . Es wird von Microsoft nicht mehr gewartet oder unterstützt. Wir empfehlen, git-tfswenn Sie eine bidirektionale TFS <-> Git-Lösung wünschen.