Frage

Vor ein paar Monaten hat mein Team unsere Quellcodeverwaltung auf umgestellt Apache-Subversion aus Visual SourceSafe, und wir waren nicht glücklicher.

Kürzlich habe ich nachgeschaut Team Foundation-Server, und zumindest oberflächlich betrachtet scheint es sehr beeindruckend zu sein.Es gibt eine großartige Integration mit Visual Studio und viele tolle Tools für Datenbankadministratoren, Tester, Projektmanager usw.

Der offensichtlichste Unterschied zwischen diesen beiden Produkten ist der Preis.Es ist schwer, Apache Subversion (kostenlos) zu schlagen.Team Foundation Server ist ziemlich teuer, daher müssten die zusätzlichen Funktionen Subversion wirklich in die Hose machen.

  • Hat jemand praktische Erfahrung mit beiden?
  • Wie vergleichen sie sich?
  • Lohnt sich der Aufwand für Team Foundation Server tatsächlich?
War es hilfreich?

Lösung

Ich bin kürzlich einem Open-Source-Projekt bei CodePlex beigetreten.Sie verwenden TFS für ihre Quellcodeverwaltung und ich muss sagen, dass es absolut großartig ist.Ich bin bisher unglaublich beeindruckt davon.Ich bin ein großer Fan der IDE-Integration und wie einfach es ist, Ihren Code zu verzweigen und mit Tags zu versehen.Das Hinzufügen einer Lösung zur Quellcodeverwaltung dauert etwa zwei Klicks, wenn Sie bereits alles richtig konfiguriert haben.

Jetzt.Ist es den hohen Preis wert?Das glaube ich nicht.Der Vorteil der Arbeit an Projekten bei CodePlex besteht darin, dass ich die Erfahrung mit TFS sammeln kann, die ich brauche, für den Fall, dass ich es später irgendwo verwenden muss.Wenn Sie eine gute IDE-Integration für Ihre Quellcodeverwaltung wünschen, greifen Sie zu VisualSVN Integrationspaket.Es ist eine viel, viel günstigere Investition, viele der gleichen Funktionen zu erhalten (übrigens kostenlos auf Nicht-Domänencomputern).

Andere Tipps

Hier sind für mich die größten Unterschiede zwischen den beiden, und ich habe beide verwendet:

1) TFS ist ziemlich eng mit der „Visual Studio-Methode“ der Entwicklung verknüpft. Das heißt nicht, dass TFS eng an die VS-IDE gekoppelt ist, sondern dass TFS Schwierigkeiten hat, das bekannte „Einchecken“/„Auschecken“-Paradigma von Visual SourceSafe beizubehalten, selbst wenn es eigentlich kein geeignetes Modell mehr ist.Das Subversion-Konzept von „Commit“/„Update“ ist viel realistischer, wenn Sie Entwickler haben, die möglicherweise Zeit ohne Verbindung zum Netzwerk verbringen.TFS erwartet, dass Entwickler immer mit dem Server verbunden sind.Das ist ein großes Minus.Ich persönlich finde, dass TFS aufgrund der engen Visual Studio-Integration alles andere als transparent ist, wenn es darum geht, wie Dateien auf dem Server und auf Ihrer lokalen Festplatte organisiert sind.Sogar die größeren Befürworter von TFS geben zu, dass das vernetzte Check-in/Check-out-Modell keine überzeugende Option für Entwickler ist, die nicht vernetzt arbeiten.In einem Klima, in dem die Leute beginnen, DVCS-Optionen wie Git und Mercurial statt SVN in Betracht zu ziehen, wirkt das „Check-out“-Modell von TFS ein bisschen wie ein Dinosaurier.

2) Kosten. Diejenigen, die sagen, dass TFS nicht teuer ist, sind wahrscheinlich entweder sehr kleine Geschäfte oder halten sich nicht an die Lizenzbedingungen von TFS.Sie benötigen für fast alles, was Sie tun, eine Client-Zugriffslizenz.Sind Sie ein Manager, der sich nur um die Fehler kümmert?Sie benötigen eine CAL im Wert von ca. 250 $ (in einer TFS-Einzelhandelslizenz sind 5 enthalten).Ein Geschäftsanwender, der einfach nur über seine Probleme berichten möchte?Ein CAL von 250 $.Ein Entwickler?250 $ (es sei denn, sie haben MSDN; in diesem Fall ist es inbegriffen).Der Kellner?500 $ (im Preis inbegriffen, wenn Sie MSDN haben).Natürlich wird Ihnen jemand, der Ihnen eine Kopie von TFS verkauft, sagen, dass die Arbeitsaufgabenverfolgung für zusätzliche Benutzer kostenlos ist, aber diese zusätzlichen Benutzer können nur die Arbeitsaufgaben sehen, die sie selbst erstellen, und nicht die Arbeitsaufgaben des gesamten Teams, was nicht der Fall ist zu nützlich in einer teamorientierten, agilen Umgebung.All dies summiert sich, wenn Sie ein mittelgroßes Unternehmen haben, und ist schwer zu rechtfertigen, wenn die Zusatzkosten für so viele erstklassige Produkte wie SVN und CruiseControl.net bei 0 US-Dollar liegen.(Um TFS gegenüber fair zu sein, warte ich jedoch immer noch auf eine Wirklich guter OSS-Issue-Tracker)

3) Projektstruktur. In großen Teams mit einer kleineren Anzahl von Projekten wird TFS wahrscheinlich gut funktionieren.Wenn Sie mehrere kleine, nicht oder nur lose miteinander verbundene Branchenanwendungen im Unternehmen haben, kann die Struktur von TFS überfordernd wirken.Zum einen ist es nicht möglich, eine Taxonomie der Projekte selbst zu definieren – Sie können „Bereiche“ innerhalb eines Projekts einrichten, aber alle Probleme und Dokumente werden gemeinsam im Grundkontext eines „Projekts“ verfolgt.Das Erstellen neuer „Projekte“ ist oft zeitaufwändig und für kleine Anstrengungen übertrieben.Natürlich bietet SVN nichts dergleichen, da es sich nur auf die Quellcodeverwaltung konzentriert. Wenn Sie jedoch eine gute Flexibilität bei kleinen Projekten benötigen, sind SVN und ein anderes Problemverfolgungstool möglicherweise die bessere Wahl.

Meine Meinung, was es wert ist:

  • Für große Teams mit großen, gut budgetierten Projekten und in einem Microsoft-Shop, in dem Entwickler fast ausschließlich innerhalb der IDE arbeiten, ist TFS der Gewinner.TFS ist auch dann von Vorteil, wenn Sie Richtlinien für Ihre Projekte zentral durchsetzen müssen.

  • Für eine Reihe kleiner Teams mit vielen unterschiedlichen, kleineren Projekten oder für Geschäfte, bei denen die Kosten eine Rolle spielen, oder für Teams, deren Entwickler nicht an die Quellcodeverwaltung angeschlossen sind, sollten Sie sich für SVN entscheiden.

Ich bin überrascht, dass jemand, der Subversion in der Vergangenheit verwendet hat, überhaupt einen Wunsch/Bedarf an TFS-Quellcodeverwaltung haben würde.

Meine Erfahrung mit TFS (2005) war ziemlich schrecklich.Ich habe alle Arten von Whitepapers und Anleitungen gelesen, wie Sie Ihre Quelle für verschiedene Entwicklungsanforderungen richtig strukturieren.

Unsere einfache Situation, in der wir einen Stamm mit der Hauptentwicklung und einen Integrationszweig haben, von dem aus wir Änderungen integrieren und bereitstellen, sowie einen Release-Zweig, um den Überblick über frühere Releases zu behalten, ist sehr häufig und unkompliziert, aber wir stoßen ständig auf Probleme.

Meine Hauptprobleme mit TFS:

  • Verschmelzung ist im Vergleich zur Subversion ein SCHMERZ.
  • Es gibt nicht behobene Fehler.Ich bin auf eine Lösung zum Umbenennen/Zusammenführen gestoßen, die seit zwei Jahren bekannt ist und von der es für 2005 nie eine Lösung geben wird.Am Ende haben wir unseren Zweig in einen „kaputten“ Ordner verschoben und ignorieren ihn jetzt.
  • Das Anbringen von Lesesperren für Ihre Dateien ist problematisch.Wer sagt, dass ich Batch-Dateien bearbeiten und Skripte innerhalb von TFS erstellen muss, damit es für mich „ausgecheckt“ wird?Subversion weiß welche Dateien geändert wurden.Es gibt dort keine Nur-Lese-Sperren.
  • Geschwindigkeit.TFS ist über ein WAN sehr langsam und kann eigentlich nur verwendet werden, wenn ich eine VPN-Verbindung zu meinem Arbeitscomputer herstelle, was meine Entwicklungserfahrung insgesamt sehr langsam macht.
  • Mangel an guter Befehlszeilen- und Explorer-Integration.Die IDE-Integration ist wirklich praktisch für das tägliche Abrufen der neuesten Informationen, das Hinzufügen von Dateien und das Einchecken, aber wenn Sie Dinge über viele Projekte hinweg erledigen müssen, ist es schön, gute Tools zur Verfügung zu haben.Und bevor mir jemand in den Rachen springt und behauptet, dass tf.exe gut funktioniert ...Es ist nicht wirklich ein Cmd-Zeilentool.Beispielsweise sollte beim Einchecken von Code kein modales Dialogfeld angezeigt werden.

...Die Liste geht weiter.Ich denke, dass es trotz aller Integration kostenlose Alternativen gibt, die weitaus besser sind.

Wir sind ein VS.NET-Shop und haben Folgendes implementiert:

  1. Bugzilla zur Problemverfolgung
  2. Apache-Subversion als Back-End für das Quellcode-Repository
  3. VisualSVN-Server zur Verwaltung von SVN auf dem Server
  4. TortoiseSVN (im Windows Explorer) und AhnkSVN oder VisualSVN (in Visual Studio) auf dem Client
  5. CruiseControl.NET für automatisierte Builds

Kosten:$ 0 Vorteile:Unbezahlbar

Wenn Sie ein kleines Team sind oder nicht bereit sind, sich auf den Who-TFS-Prozess einzulassen, sind SVN und Open-Source-Tools die richtige Wahl.

Wie andere bereits betont haben, bietet Ihnen TFS viel mehr Funktionen als SVN in Form von Projektmanagement und dergleichen.Nachdem ich beide verwendet und mit sehr großen Unternehmen bei der Implementierung von TFS zusammengearbeitet habe, hier meine Meinung.

1) Wenn Sie TFS 2005 verwenden, aktualisieren Sie auf TFS 2008.Du wirst mir danken.Es gibt eine Menge Verbesserungen in TFS 2008, die es funktionsfähig machen.

2) Wenn Sie in Visual Studio arbeiten und die IDE-Integration wünschen, entscheiden Sie sich für TFS.Ich habe die SVN-Integration verwendet und greife fast immer wieder auf TortoiseSVN zurück.

3) Wenn Ihnen die Idee gefällt, Konten in die Windows-Authentifizierung zu integrieren, entscheiden Sie sich für TFS.Die Handhabbarkeit von diesem Ende aus ist gut.Möglicherweise gibt es Haken für SVN – ich bin mir nicht sicher, aber wenn Sie die GUI-gesteuerte Verwaltung mögen, ist TFS kaum zu schlagen.

4) Wenn Sie Metriken verfolgen oder einfachere Möglichkeiten zur Implementierung von Check-in-Richtlinien benötigen, entscheiden Sie sich für TFS.

5) Wenn Sie Leute haben, die es nicht implementieren, wenn es nicht MSFT ist, entscheiden Sie sich für TFS.

6) Wenn Sie mehr als nur .NET tun (Java-Arbeit, Eclipse usw.), entscheiden Sie sich für SVN.Ja, es gibt sehr gute Produkte (wie Teamprise), die gut mit TFS funktionieren.Aber solange die anderen Sprachen nicht nur einen kleinen Teil Ihres Shops ausmachen, bleiben Sie einfach bei SVN.

Abgesehen davon sind die SCM-Funktionen beider in etwa gleichwertig.Beide führen Verzweigungen und Zusammenführungen durch, beide führen atomare Check-ins durch, beide unterstützen Umbenennungen und Verschiebungen.Ich denke, für Leute, die gerade erst mit dem Verzweigungs- und Zusammenführungskonzept beginnen, ist es hilfreich, wenn die Verzweigungen im Quellcodeverwaltungs-Explorer sichtbar sind.

TFS ist wirklich nicht so teuer (vielleicht 1200 Dollar?).Im Vergleich zu SVN ist es das vielleicht.Die Integration in Reporting Services und SharePoint ist nett, aber wenn Sie das nicht nutzen, spielt es keine Rolle.

Was ich raten würde, ist, die 180-Tage-Testversion von TFS herunterzuladen und es auszuprobieren.Führen Sie einen Test nebeneinander durch.Ich denke, du wirst glücklich sein, egal welchen Weg du einschlägst.

Wie Ubiguchi betont, handelt es sich bei TFS nicht um ein Versionskontrollprodukt.Der Kauf von TFS mit der Absicht, es nur zur Versionskontrolle zu verwenden, wäre eindeutig Geldverschwendung.TFS ist eine integrierte Suite von Tools zur Automatisierung aller Aspekte des Application Lifecycle Management (und weitgehend auf „The Enterprise“ ausgerichtet).

Auch im Beitrag von Ben S. – Ich verstehe Ihren Kommentar zu Schlössern nicht.Sperren sind in TFS überhaupt nicht erforderlich.Administratoren können TFS so konfigurieren, dass es wie VSS funktioniert (Funktionen, die von einigen „unklugen“ Kunden gefordert werden), um „Beim Auschecken das Neueste zu erhalten“, was meines Erachtens auch eine Auschecksperre bewirkt.

Aber bei der „normalen“ Verwendung von TFS wird ein Benutzer beim „Auschecken“ aufgefordert, den Sperrtyp anzugeben – und der Standardwert sollte „keine“ sein.Ein Benutzer KANN eine Check-out-Sperre (oder eine Check-in-Sperre) auswählen – dies ist jedoch nicht erforderlich.Wenn Sie keine Schlösser möchten, verwenden Sie sie nicht.

TFS verfolgt aus verschiedenen Gründen, welche Benutzer Auscheckvorgänge auf dem Server durchgeführt haben, sowohl aus Leistungsgründen (um die Aktualisierung zu beschleunigen) als auch aus Gründen der Projektverwaltung (ich möchte gerne sehen, welche Entwickler Dateien ausgecheckt haben und wie lange ihre Auscheckvorgänge dauern).

Ich bin mit SVN nicht wirklich vertraut (ich habe es noch nie verwendet) – daher kann ich nicht sagen, dass „Zusammenführen mit TFS schlechter ist“ – und bin auch nicht auf den von Ben S gemeldeten Zusammenführungsfehler gestoßen – aber es ging mir großartig Erfolg beim Verzweigen und Zusammenführen mit TFS.

Ein Anwendungsfall, bei dem TFS meiner Meinung nach immer noch ziemlich schwach ist, ist für Benutzer, die regelmäßig „offline“ sind.TFS ist ein „Serverprodukt“, das davon ausgeht, dass die Benutzer die meiste Zeit verbunden sind.Das Offline-Erlebnis hat sich in der Version 2008 verbessert (im Jahr 2005 war es düster), aber es liegt noch ein langer Weg vor uns.Wenn Sie Entwickler haben, die häufig für längere Zeit vom Netzwerk getrennt sein müssen (oder wollen), sind Sie mit SVN wahrscheinlich besser dran.

Eine weitere Funktion, die SVN-Fans, die TFS verwenden, berücksichtigen sollten, ist die SVN-Brücke ein Codekomplex, der es Benutzern ermöglicht, TortiseSVN zu verwenden, um eine Verbindung zu TFS herzustellen.Ein guter Freund und Kollege von mir nutzt es ausgiebig und liebt es.

Auch der Kommentar zum Fehlen einer Befehlszeile überrascht mich – die Befehlszeilentools sind umfangreich (obwohl viele einen separaten Download erfordern). TFS-Elektrowerkzeuge

Ich vermute, dass Bens Kommentare auf einer Evaluierung der Version von 2005 basieren, bei der es sich eindeutig um ein „Microsoft V1.0“-Produkt handelte.Das Produkt befindet sich derzeit in Version 2.1, Version 3 folgt in naher Zukunft.

TFS ist abscheulich.An diesem Punkt verwende ich die Versionskontrolle lokal mit SVN (mit Live Mesh für Backups), da ich viele Probleme mit TFS habe.Das Hauptproblem besteht darin, dass TFS Zeitstempel verwendet, um aufzuzeichnen, ob Sie über die neueste Version verfügen, und diese Zeitstempel auf dem Server speichert.Sie können Ihre lokale Kopie löschen, die neueste Version von TFS abrufen und es wird angezeigt, dass alle Dateien auf dem neuesten Stand sind.Es ist ein albernes System, das Ihnen keine Garantie dafür gibt, dass Sie die richtige Dateiversion haben.Daraus ergeben sich zahlreiche Ärgernisse:

  • TFS muss benachrichtigt werden, wenn eine Datei bearbeitet wird, sodass Sie jederzeit mit dem Server verbunden sein müssen.
  • TFS wird verwirrt, wenn Sie Dateien außerhalb der IDE bearbeiten.Darüber hinaus werden alle Dateien in NTFS auf schreibgeschützt gesetzt.

Während TFS das Zusammenführen unterstützt, handelt es sich in Wirklichkeit um ein Checkin-/Checkout-System.Wenn Sie eine Datei bearbeiten, werden Sie oft feststellen, dass sie für andere Entwickler gesperrt ist.Es gibt zwar Möglichkeiten, das zu umgehen, aber das System ist so kompliziert, dass Sie immer wieder auf dieses Problem stoßen.Unsere Entwickler haben beispielsweise herausgefunden, dass sie die Einstellung aller Dateien in NTFS auf schreibgeschützt umgehen können, indem sie eine vollständige Lösung ausprobieren, die eine exklusive Sperre für alle Dateien festlegt.Ich habe das ein paar Mal gemacht, weil Subversion die gleiche Syntax für den Checkout hat, der keine Sperre erhält.

Schließlich ist Team Explorer (der Client) satte 400 MB groß, der TFS-Server erfordert SharePoint und zwei Tage für die Installation.Das One-Click-Installationsprogramm von Subversion ist etwa 30 MB groß und installiert den Server für Sie in weniger als einer Minute.TFS hat viele Funktionen, aber sein Fundament ist so wackelig, dass Sie sie nie nutzen oder sich darum kümmern werden.TFS ist im Hinblick auf die Lizenz teuer, und in der Zeit werden Entwickler damit verschwenden, über Stackoverflow zu schimpfen, anstatt Code zu schreiben :P

Meine Empfehlung: Team System ist sein Geld nicht wert.Ich habe beide verwendet und nach der Verwendung von Team System versucht, einen ähnlichen Ersatz zu finden.Im Grunde ist das, wofür Sie bezahlen, die Integration, und Sie könnten über die Anpassungsunterstützung streiten, aber ich konnte mit ein wenig Zeit und der gemeinsamen Integration von Tools einen Team System-Ersatz erstellen.

Ich habe neulich habe eine Frage gestellt darüber, was andere getan haben, um eine Teamsystem-Alternative zu entwickeln.Außerdem liste ich die Entwicklungstools auf, mit denen ich den Ersatz erstellt habe.Hoffentlich können Sie mit dieser Antwort und der Frage, die ich gestellt habe, herausfinden, was für Sie funktioniert.

Ich bin kein Teamsystem-Hasser, ich glaube einfach nicht, dass es das Geld wert ist.Es ist ein sehr schönes Werkzeug und wenn es Ihnen nichts ausmacht, den Preis dafür zu zahlen, dann verwenden Sie es auf jeden Fall.Das war der einzige Grund, warum ich den Ersatz geschaffen habe, den ich mir ausgedacht habe.Ich wollte die Funktionalität, die Team System bietet.

Hier ist eine Open-Source-Version von VisualSVN namens Ankhsvn.Jetzt, wo Collabnet es übernommen hat, ist es viel besser.

Wenn Sie lediglich eine Quellcodeverwaltung benötigen, ist TFS übertrieben.Einer meiner früheren Arbeitgeber hatte TFS, VSS und Subversion in seinem Unternehmen.Da wir in unserem Unternehmen weder Active Directory noch Exchange Server 2003 hatten, haben wir letztendlich separate Benutzer auf dem TFS-Server erstellt, damit Entwickler ihn nutzen konnten.Wir hatten die gleichen Probleme mit der Zusammenführung, die Ben Schierman erwähnte, zusammen mit anderen fehlerhaften Verhaltensweisen, die uns zu Subversion drängten.

Ob TFS die richtige Wahl für Sie ist, hängt zum Teil von Ihrem Budget, der Größe Ihres Entwicklungsteams und der Menge an Zeit und Personal ab, die für die Konfiguration/Wartung Ihrer Lösung zur Verfügung steht.Wenn Sie die zusätzlichen Funktionen zur Problemverfolgung, Arbeitsaufgaben und Projektstatistiken nutzen möchten, die TFS bietet, kann es sich lohnen, nach anderen Alternativen zu suchen.Produkte wie JIRA (von Atlassian Systems) oder Trac lassen sich gut in Subversion integrieren und bieten die Art von Aufsicht, die ein Projekt- oder Programmmanager zu einem günstigeren Preis erhalten würde.

In einer idealen Umgebung mit Active Directory, Exchange Server 2003 oder höher und dediziertem Personal für das Repository ist TFS eher eine gute Wahl.

Ich habe es sowohl bei der Arbeit als auch zu Hause verwendet.Sie sind beide für sich genommen sehr cool.Ich würde die Verwendung von TFS jedoch nur dann empfehlen, wenn Sie mehr Funktionen als nur die Quellcodeverwaltung verwenden.Wenn Sie lediglich eine Quellcodeverwaltung benötigen, können Sie mit SVN nichts falsch machen, und das ist der Grund dafür.

  1. VisualSVN-Server Das ist ein vollständiger SVN-Server mit einem netten Plugin, mit dem man ihn verwalten kann.Damit können Sie die Windows-Authentifizierung direkt über die Benutzeroberfläche verwenden.Einfach.

  2. Schildkröte Es ist eine Schildkröte, genug gesagt.

  3. ankhsvn Es ist ein großartiges SCC-Plugin.Für diejenigen, die eine vollständige VS-IDE-Integration wünschen, ist die neueste Version ein vollständiges SCC-Plugin.Sie erhalten also jetzt die vollständige Integration kostenlos.

Die obige Einrichtung ist 100 % kostenlos und führt Sie durch alles, was Sie für die Quellcodeverwaltung benötigen.

Bei TFS geht es nicht nur um Quellcodeverwaltung.Wenn Sie das gesamte Paket nutzen, das TFS bietet, Fehlerverfolgung, Builds, Berichte usw., dann ist TFS eine ziemlich gute Wahl (sicherlich besser als Rational).TFS lässt sich auch gut in Active Directory integrieren.

Wenn Sie jedoch nur über SCM sprechen, bevorzuge ich SubVersion.Ich mag die IDE-Integration nicht wirklich.Mir gefällt auch die Konvention von SVN hinsichtlich der Trunk-/Tags-/Branches-Struktur und der relativ einfache Wechsel zwischen Branches.Das Zusammenführen schien in TFS jedoch einfacher zu sein.Die Benutzeroberfläche von Tortoise übertrifft jedoch die von TFS um Längen, insbesondere im Hinblick auf das Hinzufügen einer Datei zu einem Repo.

Ich würde sagen, es hängt wirklich von Ihren Bedürfnissen ab.TFS ist sehr nett, ich habe es ausgiebig genutzt, aber es ist sehr auf die Unternehmensebene ausgerichtet. Wenn Sie nicht alle diese Funktionen benötigen, ist es möglicherweise nicht notwendig.Wenn Sie diese Funktionen benötigen (insbesondere Verzweigung, Skalierbarkeit, Arbeitsaufgabenverfolgung usw.), sind sie jeden Cent wert.Beachten Sie, dass TFS Fehlerverfolgung, Arbeitsaufgabenverfolgung und andere Funktionen umfasst, die über die Quellcodeverwaltung hinausgehen.Wenn Sie über mehrere Zweige verfügen oder mit einem Funktionsmangel in Subversion zu kämpfen haben, ist es möglicherweise eine gute Idee, zu wechseln.Sofern es jedoch keinen guten Grund für einen Wechsel gibt, sollten Sie wahrscheinlich die Kosten- und Produktivitätseinbußen vermeiden, die ein Wechsel des Versionsverwaltungssystems mit sich bringt.

Nachdem ich beides ausgiebig genutzt habe, hatte Wedge meiner Meinung nach Recht, als er feststellte: „TFS beinhaltet Bug-Tracking, Work-Item-Tracking und andere Funktionen, die über die Quellcodeverwaltung hinausgehen.“

Ich kann jedoch ehrlich sagen, dass SVN und TFS in Bezug auf die Skalierbarkeit ziemlich gleichwertig zu sein scheinen, und wenn überhaupt, hat die Quellcodeverwaltung von SVN aufgrund ihrer inhärenten Einfachheit die Nase vorn gegenüber TFS.

Wenn Sie neben Ihrer Quellcodeverwaltung auch Workitem- und Bug-Tracking wünschen, entscheiden Sie sich entweder für TFS oder für SVN und einige andere, möglicherweise kostenlose Tools wie Bugzilla.Obwohl TFS sowohl die Quellcodeverwaltung als auch die Arbeitsaufgabenverfolgung integriert, bin ich ehrlich gesagt der Meinung, dass MS es als Entschuldigung dafür, dass es im Laufe der Jahre so viele Entwickler mit VSS missbraucht hat, kostenlos hätte hergeben sollen.

Ich habe sowohl SVN als auch TFS verwendet.Der Hauptvorteil der Verwendung von TFS ist die enge Integration mit Visual Studio.Fehlerverfolgung und Aufgabenverfolgung werden alle an einem Ort zusammengefasst.Und die für diese Punkte erstellten Berichte helfen den Beteiligten, über den Projektstatus auf dem Laufenden zu bleiben.

Ich arbeite an einem Projekt mit 5 Leuten und wir sind kürzlich von SVN auf TFS umgestiegen.Der gesamte Prozess war ein Albtraum.Wir haben automatisch generierten Code von XMLSpy und TFS erkennt keine Dateien, die außerhalb von VS2008 geändert wurden.Die TFS Power Tools können Ihre Kasse scannen und dieses Problem beheben, aber es ist mühsam, daran denken zu müssen, diese Tools zu verwenden.Ein weiteres Problem, auf das wir ständig stoßen, ist das Standard-Merging-Tool in TFS.Es ist mit Abstand das schlechteste Zusammenführungstool, das ich je verwendet habe.Man könnte meinen, dass TFS in der Lage wäre, grundlegende Lösungszusammenführungen zu bewältigen, aber bisher war das nicht der Fall.

Die integrierte Benutzeroberfläche ist sehr nützlich, weist aber auch Mängel auf.Wenn ich über meinen Lösungs-Explorer auschecke, werden hinzugefügte Dateien manchmal nicht ausgecheckt.Wenn ich es über das Team-Quellcodeverwaltungsfenster mache, funktioniert es perfekt.Warum das?Ich freue mich auf TFS in VS2010, da ich großartige Dinge darüber gehört habe und SVN alles andere als perfekt ist, aber ich hätte erwartet, dass einige dieser Funktionen etwas intuitiver funktionieren.

Adam

TFS eignet sich hervorragend für die Projektverwaltung und -verfolgung, allerdings ist die Quellcodeverwaltung meiner Meinung nach nicht so gut wie die von SVN.Hier sind meine Beefs mit TFS:

Check-in/Check-out-Modell

Dies ist ein großer Nachteil für die TFS-Quellcodeverwaltung.Leider checkt VS Artikel automatisch für Sie aus, auch wenn Sie das nicht möchten.Ich war schon einmal in der Situation, dass jemand ein paar Dateien ausgecheckt hat und dann in den Urlaub gefahren ist.Ich war für die Umstrukturierung der Verzeichnisstruktur verantwortlich, konnte dies jedoch nicht, da eine Reihe von Dateien an diese Person ausgecheckt wurden.In der GUI gibt es keine Möglichkeit, das Auschecken rückgängig zu machen, was bedeutete, dass es einzeln in der Befehlszeile durchgeführt werden musste.Oder ich musste herausfinden, wie ich dafür ein Power-Shell-Skript schreiben kann.

VS muss alles tun

Manchmal möchte ich eine Textdatei bearbeiten und einchecken.Dazu muss ich VS 2010 starten, was ein riesiges Biest ist, nur um eine Datei zu bearbeiten und einzuchecken.Etwas, das mit SVN ein paar Sekunden gedauert hat, dauert jetzt eine Minute.

Wie einige andere bereits betont haben, werden Dateien als schreibgeschützt markiert, wenn sie nicht ausgecheckt sind.Wenn Sie es beschreibbar machen und außerhalb von VS bearbeiten, erkennt TFS dies nicht.Das macht das Bearbeiten von etwas außerhalb von VS nervig.Das bedeutet, VS zu starten, die Datei auszuchecken, sie in einem anderen Editor zu bearbeiten und in VS einzuchecken.

Einige Vorgänge, die in SVN einfach waren, sind jetzt mühsam

  • Vielleicht habe ich es noch nicht herausgefunden, aber ich fand, dass das Zurücksetzen eines Änderungssatzes mit TFS sehr mühsam war.

  • Das Hinzufügen von Dateien zur Quellcodeverwaltung, die nicht Teil einer Lösung sind, ist sehr mühsam.Der TFS-Quellcodeverwaltungs-Explorer zeigt nur an, welche Dateien sich in der Quellcodeverwaltung befinden, nicht welche nicht (vielleicht gibt es dafür irgendwo eine Einstellung, ich weiß es nicht).Mit Tortoise SVN könnte ich einfach Commit für einen Ordner drücken und auswählen, welche Dateien hinzugefügt werden sollen.

Ich leite derzeit die Bemühungen, TFS in meinem Unternehmen im Vergleich zur Rational Suite zu bewerten, die wir derzeit verwenden.Bisher unterstützt TFS 2008 Clearcase + Clearquest.Besonders hervorzuheben ist die Integration der Entwicklungsumgebung.

Meine 10 Cent:

TFS2005 war ein Witz - schwer zu installieren und noch schwerer zu pflegen, TFS2008 war stabil - leichter zu installierender, einfacherer Wartung und automatisierten Builds, die funktionieren.TFS2010 ist EPISCH!- Die Installation ist kinderleicht.Die Verwaltung ist sehr einfach;Es ist alles eine schön gestaltete Benutzeroberfläche.Die Integration in VS2008 ist nicht so einfach, da Sie in vs2008 keine Projekte erstellen können und stattdessen vs2010 verwenden müssen (was dumm ist).Mit TFS2010 können Sie auch den Sharepoint-Projektspeicherort ändern, anstatt diese schrecklichen Unterordner von TFS2008 zu haben.TFS2010 verfügt außerdem über Tools wie ein Burndown-Diagramm, die für das Projektmanagement sehr nützlich sind.Es ist, als wäre TFS2010 für das gesamte Produktionsteam, einschließlich der Kunden, gedacht!Es kostet aber immer noch viel zu viel :(

Bedenken Sie auch, dass TFS VIEL mehr Leistung von der Server-Hardware benötigt.Und natürlich mindestens eine Windows-Serverlizenz.

Die beste Praxis, die unser Unternehmen befolgt, ist die Verwendung von zwei Servern:Front-End (mit integriertem Sharepoint) und ein dedizierter SQL-Server im Back-End (wir verwenden einen Unternehmenscluster).TFS kann auf einer Maschine installiert werden, sollte aber nicht.

Im Vergleich dazu ist unser SVN-Server auf einem virtuellen Linux-Server mit 256 MB RAM und 1 CPU installiert und ist bei der Ausführung allgemeiner Aufgaben wie „Checkout-All“ immer noch um mehrere Größenordnungen schneller.Die virtuelle Hardware war die niedrigste, die Vshpere zuordnen konnte!Die Festplatte ist jedoch schnell (SAN).

Ich würde vorschlagen, dass TFS dedizierte Hardware für mindestens 5000 US-Dollar erfordert, während der SVN-Server (unter Linux) mit jeder Hardware ausgeführt werden kann, die für aktuelle Windows-basierte Betriebssysteme veraltet ist.

Meiner Meinung nach hängt es von der Situation und dem Umfeld ab, in dem das Projekt durchgeführt wird.Wenn Sie nur ein einfaches, kleines Projekt haben, ist SVN großartig.Wie bereits einige geschrieben haben, lässt sich VisualSVN gut in Visual Studio integrieren.Sie müssen das Ein-/Auschecken nicht über das native Dateisystem durchführen.

TFS eignet sich hervorragend für die Versionskontrolle, aber noch besser, wenn Sie wirklich alle Funktionen nutzen.In meinen Augen lohnt es sich wirklich, wenn Sie beispielsweise die Arbeitselemente als integriertes Repository für die Bearbeitung von Kundenfehlerberichten und neuen Funktionsanfragen verwenden und den Fortschritt Ihres Projekts verfolgen, indem Sie Aufgaben und die entsprechende geschätzte Zeit, verbrauchte Zeit usw. verwalten Restzeitanzeigen.
Wirklich interessant ist auch die Funktion, Arbeitselemente mit Quellcode-Check-Ins zu verknüpfen.Sehen Hier für weitere Infos dazu.

Wir sind ein kleines Team, das gerade von SVN auf TFS2010 migriert.Unser Hauptgrund dafür ist die Integration in Visual Studio und WebAccess für die Fehlerverfolgung, das jetzt Teil des TFS ist.

@Adam:Hoffentlich werden wir eine bessere Erfahrung machen.Kann ich noch nicht sagen...

Ich habe in den letzten 3 Jahren SVN verwendet (früher von VSS) und musste kürzlich auf TFS2010 umsteigen.Der Gesamteindruck ist, dass es fehlerhafter als SVN ist und abgesehen von der guten Integration mit den Aufgaben/Bugs sehe ich keinen Vorteil gegenüber SVN.Auch die Geschwindigkeit scheint etwas langsamer zu sein als bei SVN.

Wenn ich mich jetzt für eine Quellcodeverwaltung entscheiden würde, würde ich immer noch SVN verwenden.

Zu den Werkzeugen:- Ankhsvn Visual Studio -Plugin ist so gut wie die TFS -Quellensteuerung - Tortoise ist viel besser als das TFS -Gegenstück

TFS ist großartig, wenn Sie keine Nicht-Entwickler benötigen, um an PN-Sachen zu gelangen.

Unser Helpdesk muss in den Prozess einbezogen werden, aber das reichte einfach nicht aus.

Auch das Build-Management in TFS 2005 ist zumindest schäbig, und es kann nicht einmal im Vergleich zu 2008 SLNs erstellt werden.Es gefällt mir wirklich nicht, dass sich meine Wahl der Quellcodeverwaltung auf meine Bereitstellungsentscheidungen auswirkt. Aus diesem Grund ist mein Team kein SVN-Shop.

Wenn es Nur Basierend auf der Quellcodeverwaltung würde ich mich für SVN entscheiden.Das kostenlose AnkhSVN-Add-In für Visual Studio wurde in seiner neuen Version erheblich verbessert.Außerdem erhalten Sie den Quellcode für SVN und die Dokumentation ist großartig!Sie haben verändert einige arkane Dinge in der TFS 2010-Quellcodeverwaltung und ohne den Quellcode kann die Fehlerbehebung sehr entmutigend sein.Außerdem sind Sie beim Ausliefern der Dokumentation auf das MSDN-Team angewiesen, das dies nach seinem eigenen Zeitplan und in seiner eigenen Tiefe erledigt.

Davon abgesehen, TFS bietet offensichtlich viel mehr als nur Quellcodeverwaltung.Es ist ein ALM Werkzeug.Kombinieren Sie es mit Arbeitselementen, Berichten, automatisierten Builds, Abgeschlossener Check-in, automatisierte Tests usw.kann einen sehr großen Mehrwert bieten, den Sie nur durch die Verbindung unterschiedlicher Tools mit SVN erhalten können.Und natürlich ist die Quelle für SVN nicht ausfallsicher.Ich bin mit SVN in Situationen geraten, in denen es noch Wochen gedauert hätte, bis ich vollständig herausgefunden hätte, was los war.

Daher empfehle ich Ihnen, es aus der ALM-Perspektive zu betrachten und zu prüfen, ob Ihr Unternehmen es nutzen wird alle TFS-Funktionen oder mit einer Best-of-Breed-Strategie (z. B.JIRA).

TFS um Längen.

Ich mache mir versehentlich zu viele Probleme mit dem dateibasierten Ansatz von SVN.Ich hatte Probleme mit der Quellcodeverwaltung:TFS - 0 Probleme über 2 Jahre SVN - Lost Count ...

Ja, ich weiß, dass der Preis von TFS dies für die meisten Unternehmen berücksichtigt, was wirklich schade ist.MS könnten viel mehr Marktanteile (und Gewinne) haben, wenn sie ein vernünftiges Preismodell hätten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top