Was sind die großen Unterschiede zwischen TFVC (TFS Version Control) und Git für die Quellcodeverwaltung bei der Verwendung von Visual Studio 2013?

Lesezeit: 10 Minuten

Was sind die grosen Unterschiede zwischen TFVC TFS Version Control
Gregor Grater

Es gibt unzählige Fragen und Antworten zu Git im Vergleich zu TFVC-Quellcodeverwaltung, aber keine aktuellen Antworten behandeln die Integration von Git in Team Foundation Server/Service, die ich finden kann.

Ich beginne mit der Green-Weide-Entwicklung mit einer Vielzahl von Sprachen (C#, C++, PHP, Javascript, MySQL) und Visual Studio 2013. In Zukunft wird es einige iOS-Entwicklungen geben. Ich bin sehr vertraut mit SVN, VSS und TFVC für die Quellcodeverwaltung. Allerdings habe ich nie Git verwendet. Ich bevorzuge TFS für Prozessmanagement/agile Entwicklung… Es ist nicht perfekt, aber es lässt sich gut in Visual Studio integrieren.

Also, um mir bei der Entscheidung zwischen diesen beiden Systemen zu helfen …

Was sind die großen Unterschiede zwischen TFVC und Git für die Quellcodeverwaltung bei der Verwendung von Visual Studio 2013?

  • Ist der einzige Vorteil in meinem Fall ein lokales Repository (um nicht zu sagen, dass es unbedeutend ist) und iOS-Entwicklungsunterstützung?
  • Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).
  • Haben Sie Erfahrung mit der Visual Studio 2013-GUI für Git? Reicht das aus, um grundlegendes Verzweigen/Zusammenführen ohne die Befehlszeilenschnittstelle zu unterstützen?
  • Gibt es eine ausführliche Startanleitung für Git, die zeigt, wie Git mit Visual Studio 2013 verwendet wird? Microsoft hat ein Video zur Integration eines vorhandenen Git-Repositorys in Visual Studio 2013, aber ich suche nach einem Neuanfang mit Git und VS 2013.

Ich suche hier kein Buch, sondern nur ein paar Stichpunkte und vielleicht einige relevante Links von Leuten, die sowohl TFVC als auch Git verwendet haben.

Was sind die grosen Unterschiede zwischen TFVC TFS Version Control
jessehouwing

Aktualisieren

Seit 2013 ist viel passiert:

  • Microsoft hat Team Foundation Server, Azure DevOps Server und Azure DevOps um ssh-Unterstützung erweitert.
  • Visual Studio 2019 16.8+ wird mit einem komplett überarbeiteten Git-Client ausgeliefert.
  • Microsoft hat seine eigenen internen Produkte aus TFVC entfernt. Windows- und Office-Quellen leben jetzt in Git in Azure DevOps.
  • Microsoft hat GitHub gekauft, das jetzt der Hauptfokus für DevOps-bezogene Angebote ist. Viele Leute, die zu Azure DevOps beigetragen haben, sind infolgedessen zu GitHub gewechselt.
  • Virtual File System for Git & Git Large File System haben viele der Gründe behoben, warum Menschen bei TFVC geblieben sind.
  • Azure DevOps verfügt über ein integriertes Migrationstool, das (einen Teil) Ihres TFVC-Verlaufs in ein Git-Repository konvertieren kann.

In all dieser Zeit ist für TFVC sehr wenig passiert:

  • YAML-Pipelines müssen 2 Jahre nach ihrer Einführung noch TFVC-Unterstützung erhalten (ich erwarte das überhaupt nicht).
  • Team Explorer heißt jetzt in Visual Studio „Legacy“.
  • TFVC wurde für Feature Complete erklärt
  • Die TFVC-Unterstützung für Eclipse und Visual Studio Code und Linux/Mac ist offiziell veraltet/endet.

Es ist ziemlich klar, wer gewonnen hat: Git.


Was sind die großen Unterschiede zwischen TFS und Git für die Quellcodeverwaltung bei Verwendung von VS 2013?

MSDN hat eine sehr umfangreiche Seite zu allen Features und Unterschieden zwischen Team Foundation Version Control und Git.

Ist der einzige Vorteil in meinem Fall ein lokales Repository (um nicht zu sagen, dass das unbedeutend ist) und IoS-Entwicklungsunterstützung?

Nein, es gibt noch viel mehr, aber es handelt sich oft um fortgeschrittene Git-Szenarien. Lokales Repo, Offline-Unterstützung und vollständige lokale Wiedergabetreue des Verlaufs sind unglaublich leistungsfähig, das ist mit Visual Studio sofort einsatzbereit. Es gibt noch ein paar andere tolle Features! Die Fähigkeit, von einem Repository zu einem anderen zu verzweigen und zusammenzuführen, ist sehr leistungsfähig. Ich empfehle Ihnen, nachzuschlagen Pro Git-Buch für diejenigen. Git in TFS ist nur ein weiterer Git-Server, er hat so ziemlich alle Funktionen, die das Standard-Git hat.

Die Möglichkeit, den Verlauf vor dem Zusammenführen neu zu schreiben, ermöglicht es Ihnen, eine Reihe kleinerer Änderungssätze zu entfernen oder zu kombinieren, sodass der Verlauf übersichtlicher und für Menschen leichter lesbar ist.

Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).

TFVC hat auch eine Befehlszeile, die Leute benutzen sie einfach nicht. Für Leute, die Git verwenden wollen und nie viel mehr tun als TFVC, müssen sie die Benutzeroberfläche wahrscheinlich nicht wirklich verlassen, sie werden jedoch nicht viele der coolen Funktionen erhalten …

Es könnte ein paar andere Nachteile geben, hauptsächlich aufgrund der Tatsache, dass es anders ist als das, was die Leute gewohnt sind. Es ist nicht allzu schwer, sich selbst ins Knie zu schießen, wenn Sie sich nicht die Zeit nehmen, zu lernen, was Git tut, wenn Sie Dinge tun. Dinge wie Rebase und Squash sind wirklich mächtig und erzeugen eine sehr saubere Historie, aber es kann Leute mit dem Problem zurücklassen, dass sie nicht mehr zusammenführen können, wenn sie falsch verwendet werden. TFS hat die Fähigkeit, einige Sicherheitseinstellungen festzulegen, um die Rechte zu entziehen, um sehr dumme Entscheidungen in einem Git-Repository zu treffen.

Ein sehr cooles Add-On für Git-Benutzer unter Windows ist PoSHGit. Es bietet eine automatische Befehlsvervollständigung in der Powershell-Befehlszeile.

Haben Sie Erfahrung mit der VS 2013 GUI für Git? Reicht das aus, um grundlegendes Verzweigen/Zusammenführen ohne die Befehlszeilenschnittstelle zu unterstützen?

Es hat alles, was Sie für grundlegende Operationen benötigen. Aber Sie müssen in der Lage sein, die verschiedenen Zweige zu visualisieren, um zu wissen, was vor sich geht. Da der Git-Server und das lokale Repo nur Git sind, kann Ihnen jeder Git-Client hier helfen. SourceTree ist hier eine Option. Der Git für Windows-Client ist ein weiterer.

Für Standardoperationen, Einchecken, Auschecken, Zusammenführen, Verzweigen (oder Pushen, Ziehen, Abrufen, Festschreiben, Zusammenführen) funktioniert die Benutzeroberfläche einwandfrei.

Gibt es eine detaillierte Startanleitung für Git, die zeigt, wie Git mit VS 2013 verwendet wird? MS hat ein Video zur Integration eines vorhandenen Git-Repos in VS 2013, aber ich suche einen Neuanfang mit Git und VS 2013?

Das Starten mit Git ist an mehreren Stellen verfügbar … Dies sind einige Optionen:

Andere gute Lektüre:

Und ein paar Tools, die es wert sind, installiert zu werden:

  • Die ALM Rangers werden in Kürze ihre Anleitung für Git für TFVC-Benutzer hier veröffentlichen: vsarbranchingguide.codeplex.com/releases. Die aktuelle Beta-Version hat es noch nicht, ich gehe davon aus, dass es mit dem nächsten Batch veröffentlicht wird :).

    – Jessehouwing

    6. Mai 14 um 21:27 Uhr

  • Nach fast einem Jahr seit meinem ursprünglichen Beitrag wollte ich Sie alle wissen lassen, dass wir VS2013 erfolgreich mit Git verwenden. Ich liebe die Möglichkeit, mehrere Repositories unter einem einzigen Team-Projekt zu erstellen. Wir hatten ein paar Probleme beim Zusammenführen. In mehreren Fällen wählt die automatische Zusammenführung falsch aus. Was also wie eine erfolgreiche Zusammenführung aussieht, ist es wirklich nicht. Wir überprüfen jetzt alle zusammengeführten Dateien. Außerdem gibt es bestimmte Fälle, in denen die Zusammenführung verstopft und einen Fehler in der VS-Benutzeroberfläche auslöst (libgit2-Merge-Konflikt). Um das Problem zu beheben, müssen wir zur cmd-Eingabeaufforderung wechseln und einen Git-Pull ausführen (kein Spaß).

    – Greg Reibe

    5. November 14 um 22:51 Uhr

  • Ich weiß, dass es eine Lösung für diesen letzten Fehler als Teil von Update 4 geben wird. Und dass es Fälle gab, in denen die Endzeileneinstellungen zwischen den Entwicklern unterschiedlich waren, was dazu führen kann, dass diese Probleme auftreten.

    – Jessehouwing

    6. November 14 um 7:57 Uhr

  • Wir verwenden VS 2013 mit Update 4, seit es vor Monaten gelöscht wurde, und es scheint alle unsere Git-Probleme über die GUI behoben zu haben. Wir haben die Angewohnheit, regelmäßig vom Remote-Server abzurufen, was dazu beiträgt, unsere lokalen Repositories auf dem neuesten Stand zu halten. Außerdem hat MS in letzter Zeit mehrere positive Aktualisierungen des Product Backlog / Task Boards durchlaufen. Direkt vom Board aus können Sie nun die Beschreibung bearbeiten, zuweisen, den Status setzen und die Priorität/Reihenfolge des Artikels anpassen.

    – Greg Reibe

    19. März ’15 um 11:20 Uhr

  • Die Links „Git vs. TFVC“ verlinken auf „Erste Schritte mit Git“. Bedeutet das jetzt, dass wir besser Git statt TFVC verwenden sollten? ;D neuen Link gefunden: visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc

    – Martin Schneider

    5. Juli 16 um 16:52 Uhr


1644204552 966 Was sind die grosen Unterschiede zwischen TFVC TFS Version Control
James Wierzba

Um einige verwirrende gemischte Terminologie zu klären, die häufig verwendet wird TFS

Team Foundation-Server (TFS) ist ein Anwendungslebenszyklus-Management-Tool, das beinhaltet eine Quelle Versionskontrollsystem (VCS) Komponente.

Der VCS Komponente das TFS Verwendet Ist in erster Linie Team Foundation-Versionskontrolle (TFVC)

Die Frage wäre also TFVC vs Git

(In der Tat, TFS unterstützt Git Als ein VCS Möglichkeit.)

Die Frage ist also: TFVC vs. Git

jessehouwing hat eine großartige Antwort, die dies ausführlich behandelt, also beziehen Sie sich bitte darauf

Soweit die Auswahl, die ich meiner Meinung nach verwenden soll Git Gewinnt

  1. Es ist leicht: Einfach einzurichten und zu verwenden.
  2. Seine verteilte Natur bedeutet, dass es sehr widerstandsfähig gegenüber Katastrophen ist, jemand wird immer eine Kopie des Repos haben.
  3. Offline-Arbeit ist einfach, Sie arbeiten mit Ihrem eigenen vollständigen Repository. Sie können Änderungen übernehmen, wiederherstellen, den Verlauf durchsuchen usw. Sie müssen nur online sein, wenn Sie mit einem Remote-Repository synchronisieren möchten.
  4. In TFS gibt es keine einfache Möglichkeit, den Status Ihrer Änderungen (Dateihinzufügungen, -änderungen, -löschungen) zu speichern und zu einem anderen Codestatus zu wechseln. (Zum Beispiel, um an zwei Features zu arbeiten und hin und her zu wechseln). In Git checkst du einfach einen anderen Branch aus.

  • TFS hat Branches und Shelf-Sets (was #5 zulässt) und Sie können Ihre Projekte sogar so konfigurieren, dass sie Git verwenden, wenn Sie das wirklich wollen. TFS VCS hat auch eine Befehlszeile für #. Es ist nicht leichtgewichtig, aber es leistet sofort viel mehr als Git, da es über ein vollständiges Projektmanagement/Bug-Tracking/Arbeitstracking/Release-Management/Build-Management/Check-in-Richtlinien/Tests verfügt.

    – Matthew Whited

    23. Juli 18 um 17:39 Uhr

  • @MatthewWhited Sicher ist es möglich, aber im Vergleich zu Git ist es aufgrund seiner verzeichnisbasierten Implementierung im Vergleich zur graphbasierten Implementierung von Git äußerst umständlich. Beachten Sie, dass ich gesagt habe, dass es keine gibt simple Weg, es zu tun.

    – James Wierzba

    23. Juli 18 um 18:16 Uhr


  • @MatthewWhited Außerdem stimme ich den zusätzlichen Tools für den Anwendungslebenszyklus zu, aber ich beschränke meine Antwort nur auf Lösungen zur Kontrolle der Quellcodeversion.

    – James Wierzba

    23. Juli 18 um 18:18 Uhr


  • IDK … Ich finde TFS ziemlich einfach zu bedienen. Obwohl ich auch alle von GIT erstellten Zweige nicht mag, da es komplexer wird, sicherzustellen, dass alle den gleichen Code haben, mit schneller Abwanderung für einige, während sie für andere langsam sind.

    – Matthew Whited

    23. Juli 18 um 19:04 Uhr

  • Weiß nicht. GIT ist einfach zu kompliziert für die Aufgabe, die es erfüllen soll, und sehr nicht intuitiv (warum ist es ein Pull-Request und kein Push-Request?!). Die TF-Quellcodeverwaltung ist sehr einfach und kann jedem neuen Entwickler in meinem Team in wenigen Minuten erklärt werden. Ich sehe auch die Förderung der Arbeit vor Ort als großen Nachteil innerhalb eines Teams und sogar individuell an. Wie verhindern Sie, dass Ihre Arbeit in Git verloren geht, ohne das Projekt mit Verzweigungen zu verunreinigen? (Hierfür gibt es Shelfsets in TFS – AUF DEM SERVER)

    – Cäsar

    16. Juli 2020 um 23:03 Uhr

1644204552 287 Was sind die grosen Unterschiede zwischen TFVC TFS Version Control
kralyk

Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).

Wenn Sie sich mit der Befehlszeilenschnittstelle nicht auskennen, stehen für Git mehrere GUI-Frontends zur Verfügung. Git selbst enthält tatsächlich ein Repository-Browser-GUI-Tool namens gitk und git-gui – eine GUI für git. Dann gibt es Apps von Drittanbietern wie z Git-Cola, SchildkröteGit und Andere.

  • Natürlich stellt Visual Studio selbst eine GUI für Git zur Verfügung. Aber es gibt immer Zeiten, in denen Sie vielleicht in die Befehlszeile eintauchen möchten, um Dinge zu tun, die sonst unmöglich sind. Eine GUI, die alle Git-Befehle verfügbar macht, ist genauso schwierig wie die Befehlszeile.

    – Jessehouwing

    21. Mai ’14 um 7:34 Uhr

  • Es gibt Befehlszeilen-Powertools. Zum Beispiel, um einen Zweig vollständig aus der Existenz zu streichen.

    – Ingenieur

    8. April 19 um 21:05 Uhr

.

805360cookie-checkWas sind die großen Unterschiede zwischen TFVC (TFS Version Control) und Git für die Quellcodeverwaltung bei der Verwendung von Visual Studio 2013?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy