Ich habe vor kurzem die Nase voll von TFS. Ich habe gehört, dass am Ende des Tunnels ein Licht ist. Anscheinend kann ich entweder git-tf oder git-tfs verwenden und meinen Code so behandeln, als ob er von git verwaltet würde, aber in der Lage sein, auf einen zentralen TFS-Server zu pushen / von diesem zu ziehen.
Meine Hauptfrage ist, dass ich nicht sicher bin, welche davon ich verwenden soll. Es gibt git-tf, das offiziell von Microsoft unterstützt wird, und es gibt git-tfs, das es schon viel länger gibt. Was sind die Unterschiede zwischen diesen und welche sollte ich zuerst ausprobieren?
Antworten:
Haftungsausschluss: Ich habe das
git-tf
Projekt 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-tfs
wurde für Windows-Benutzer erstellt und auf das .NET TFS SDK geschrieben. Das TFS SDK wird nicht unter Mono ausgeführt, daher istgit-tfs
es für die plattformübergreifende Verwendung ungeeignet.git-tf
wurde 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.). Esgit-tf
wurde 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-tfs
ist, dass es unter Mac OS nicht funktioniert. Wenn es eine Möglichkeit gäbe,git-tfs
plattformübergreifend zu arbeiten,git-tf
würde es mit ziemlicher Sicherheit keine geben.git-tfs
ist in einigen Fällen schneller alsgit-tf
. Leistung war nicht unsere Priorität in den ersten Überarbeitungen, Korrektheit war.Aufgrund
git-tf
der breiten Plattformunterstützungsmatrix ist die Funktionalität zwangsläufig eingeschränkt. Zum Beispiel gibt es keine Benutzeroberfläche.git-tfs
Auf der anderen Seite gibt es einencheckintool
Befehl, 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-tf
funktioniert, indem das Git-Repository direkt aufgefüllt und TFS-Objekte direkt in die Git-Objektdatenbank heruntergeladen werden.git-tfs
funktioniert, 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-tfs
kann versuchen, Ihre TFS-Zweige Ihren Git-Zweigen zuzuordnen. Viele Leute werden dies als positiv empfindengit-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-tfs
wird aktiv von einer Community entwickelt.git-tf
hat die Community nicht adoptiert.Ich möchte nicht, dass es so klingt, als wäre
git-tf
es schlecht. Es ist nicht. Ich finde es eigentlich ziemlich gut. Aber es ist möglicherweise nicht Ihre beste Wahl.Update:
git-tf
hat das Ende der Lebensdauer erreicht . Es wird von Microsoft nicht mehr gewartet oder unterstützt. Wir empfehlen,git-tfs
wenn Sie eine bidirektionale TFS <-> Git-Lösung wünschen.quelle
Haftungsausschluss: Ich bin Entwickler des git-tfs-Projekts
Edit: git-tf wird nicht mehr gepflegt ...
Bearbeiten: git-tfs wird auch nicht mehr aktiv gepflegt .
Es gibt eine Unterstützung für die TFS-Verzweigung in git-tfs (Abrufen vorhandener Zweige, Erstellen von Zweigen, Zusammenführen von Zweigen einfacher als mit TFS, ... mit
branch
Befehl). Es funktioniert die meiste Zeit, aber nicht mit komplexen TFVC-Zweig-Workflows ...Sehen:
git-tfs ist möglicherweise auch das einzige Tool, mit dem Sie von TFS (VC) zu TFS (Git) migrieren, bei Bedarf Workitems verwalten oder ein einfaches Git-Repository erstellen können.
Und einige andere gute Eigenschaften ...
(Und es ist aktiver und wird mehr unterstützt )quelle
An alle, die diesen Thread finden:
Git-TF
wurde offiziell eingestellt, nachdem es nach 2013 nicht aktualisiert wurde, und schlägt nun ausdrücklichGit-TFS
eine Alternative vor.(Abschnitt wurde im April 2017 von Edward Thomson, seinem Initiator und Autor der akzeptierten Antwort, zur Codeplex-Seite des Projekts hinzugefügt .)
Git-TFS
scheint aktiv gepflegt zu werden: https://github.com/git-tfs/git-tfs/commits/masterquelle