Die ganze Distributed-Sache von Git ist wirklich großartig. Es bietet einige Funktionen, über die Shelvesets (im aktuellen Produkt) nicht verfügen, z. B. lokale Rollback- und Commit-Optionen (z. B. die Localhistory-Funktion von Eclipse ). Sie könnten dies mit Entwicklerzweigen abmildern, aber seien wir ehrlich, viele Entwickler mögen es nicht, ein Bit zu verzweigen und zusammenzuführen. Ich wurde gebeten, die Funktion "Exklusives Auschecken" im alten Stil in TFS ein paar Mal zu oft zu aktivieren (und sie jedes Mal abzulehnen).
Ich denke, viele große Unternehmen haben große Angst davor, dass ein Entwickler einfach die gesamte Geschichte in einen lokalen Arbeitsbereich bringt und mitnimmt (zum Beispiel zu einem neuen Arbeitgeber) ... Einen Schnappschuss zu stehlen ist schlecht, aber eine ganze Geschichte wegzunehmen ist noch problematischer. (Nicht, dass Sie keine vollständige Historie von TFS erhalten könnten , von der Sie es wollten) ...
Es wird erwähnt, dass dies eine großartige Möglichkeit zum Sichern ist, was wiederum für Open Source großartig ist, wenn der ursprüngliche Betreuer möglicherweise aufhört, sich um seine Version zu kümmern und sie entfernt, aber für einen Unternehmensplan ist dies für viele Unternehmen wiederum unzureichend, da es keine eindeutige Zuweisung von Verantwortlichkeiten gibt Backups zu halten. Und es wäre schwer herauszufinden, welche Version verwendet werden soll, wenn das Hauptprojekt irgendwie verschwindet. Welches würde dazu neigen, ein Repository als führend / zentral zu ernennen.
Was mir an Git am besten gefällt, ist die Push / Pull-Option, mit der Sie problemlos Code zu einem Projekt beitragen können, ohne Commit-Rechte zu benötigen. Ich denke, Sie könnten sehr begrenzte Benutzer und Regale in TFS verwenden, um dies nachzuahmen, aber es ist nicht so leistungsfähig wie die Git-Option. Das Verzweigen über Teamprojekte hinweg mag ebenfalls funktionieren, aber aus administrativer Sicht ist dies für viele Unternehmen nicht wirklich machbar, da das Hinzufügen von Teamprojekten einen hohen Verwaltungsaufwand verursacht.
Ich möchte auch zu den Dingen hinzufügen, die im Bereich ohne Quellcodeverwaltung erwähnt werden. Funktionen wie Workitem-Tracking, Berichterstellung und Build-Automatisierung (einschließlich Laborverwaltung) profitieren in hohem Maße von einem zentralen führenden Repository. Diese werden viel schwieriger, wenn Sie ein rein verteiltes Modell verwenden, es sei denn, Sie machen einen der Knoten führend (und kehren daher zu einem weniger verteilten Modell zurück).
Da TFS Basic mit TFS 11 geliefert wird, ist es möglicherweise nicht weit entfernt, ein verteiltes TFS zu erwarten, mit dem Sie Ihr lokales TFS Basic in der TFS 12+ -Ära mit einem zentralen TFS synchronisieren können. Ich werde meine Stimme dafür im Uservoice ablegen !