SVN vs. Team Foundation Server [geschlossen]

  • Vor einigen Monaten stellte mein Team unsere Quellcodeverwaltung auf Apache Subversion um Visual SourceSafe , und wir waren nicht zufriedener.

    Kürzlich habe ich mir Team Foundation Server und unter Zumindest auf der Oberfläche scheint es sehr beeindruckend. Es gibt eine großartige Integration in Visual Studio und viele großartige 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 treten.

    • Hat jemand praktische Erfahrung mit beiden?
    • Wie werden sie miteinander verglichen?
    • Lohnt Team Foundation Server tatsächlich den Aufwand?
    23 April 2013
    BryanH
25 answers
  • Hier sind die größten Unterschiede zwischen den beiden für mich, und ich habe beide verwendet:

    1) TFS ist ziemlich eng mit dem " Visual Studio-Methode "für die Entwicklung". Das heißt nicht, dass TFS eng mit der VS IDE gekoppelt ist. Das bedeutet, dass TFS sich bemüht, das bekannte "Check-in" / "Check-out" -Paradigma von Visual SourceSafe sogar aufrechtzuerhalten wenn es wirklich kein passendes Modell mehr ist. Das Konzept von "Commit" / "Update" von Subversion ist viel realistischer, wenn Sie Entwickler haben, die möglicherweise längere Zeit vom Netzwerk getrennt sind. 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 Integration von Visual Studio nicht transparent ist, wie Dateien auf dem Server und auf Ihrer lokalen Festplatte organisiert werden. Selbst die größeren Befürworter von TFS gestehen ein, dass das angeschlossene Check-In / Check-Out-Modell keine überzeugende Option für Entwickler darstellt, die nicht mit dem Netzwerk verbunden sind. In einem Klima, in dem die Menschen anfangen, DVCS-Optionen wie git und Mercurial über SVN zu betrachten, scheint das "check out" -Modell von TFS ein bisschen wie ein Dinosaurier.

    2) Kosten. Diejenigen, die behaupten, TFS sei nicht teuer, sind entweder sehr kleine Läden oder entsprechen nicht den Lizenzbestimmungen von TFS. Sie benötigen eine Client-Zugriffslizenz, wenn Sie in der Nähe von allem, was Sie tun. Sind Sie ein Manager, der nur die Fehler verwaltet? Sie benötigen eine CAL von $ 250 (eine TFS-Lizenz für den Einzelhandel ist im Lieferumfang enthalten). Ein Geschäftsanwender, der nur über seine Probleme berichten möchte? A $ 250 CAL. Ein Entwickler? 250, - US-Dollar (es sei denn, sie verfügen über MSDN, in welchem ​​Fall sie enthalten sind). Der Server? $ 500 (inklusive, wenn Sie MSDN haben). Natürlich kann Ihnen jemand, der Ihnen eine Kopie von TFS verkauft, sagen, dass die Überwachung von Arbeitselementen für zusätzliche Benutzer kostenlos ist. Diese zusätzlichen Benutzer können jedoch nur die Arbeitselemente sehen, die sie selbst erstellen, und nicht die Arbeitselemente des gesamten Teams, was jedoch nicht der Fall ist zu u

    15 September 2011
    Dave Markle
  • Ich bin überrascht, dass jemand, der Subversion in der Vergangenheit verwendet hat, sogar eine TFS-Quellcodeverwaltung hat / braucht.

    Meine Erfahrung mit TFS (2005) ) war ziemlich schrecklich. Ich habe alle Arten von Whitepapers & amp; Anleitung, wie Sie Ihre Quelle für verschiedene Entwicklungsanforderungen richtig strukturieren können.

    Unsere einfache Situation, in der wir einen Stamm mit Mainline-Entwicklung und einen Integrationszweig haben, in den wir Änderungen integrieren. Die Bereitstellung von und ein Veröffentlichungszweig zum Verfolgen früherer Versionen ist sehr häufig und unkompliziert, aber wir haben ständig Probleme.

    Meine Hauptprobleme bei TFS:

    • Das Zusammenführen ist im Vergleich zu Subversion eine PAIN.
    • Es gibt nicht fixierte Fehler. Ich bin auf ein Problem mit dem Thema Umbenennen / Zusammenführen gestoßen, das seit 2 Jahren bekannt ist. Ein Update wird für 2005 nicht veröffentlicht. Wir haben unseren Zweig in einen "defekten" Ordner verschoben und ignorieren ihn jetzt.
    • Das Setzen von schreibgeschützten Sperren für Ihre Dateien ist Reibung. Wer sagt, dass ich Batchdateien bearbeiten und Skripts in TFS erstellen muss, damit es für mich "auschecken" kann? Subversion weiß , welche Dateien geändert wurden. Es gibt dort keine schreibgeschützten Sperren.
    • Geschwindigkeit. TFS ist über ein WAN hundemäßig und kann nur verwendet werden, wenn ich ein VPN in meinen Arbeitscomputer einsetze, was meine Entwicklerfahrung insgesamt sehr langsam macht.
    • Mangel an guter Befehlszeilen- und Explorer-Integration . Die IDE-Integration ist sehr praktisch für das tägliche Get-Latest-Verfahren, das Hinzufügen von Dateien und das Einchecken. Wenn Sie jedoch in vielen Projekten Dinge erledigen müssen, stehen Ihnen gute Tools zur Verfügung. Und bevor jemand in meine Kehle springt und behauptet, dass tf.exe gut funktioniert ... ist es nicht wirklich ein Cmd-Tool. Beispielsweise sollte beim Einchecken von Code kein modales Dialogfeld angezeigt werden.

    ... die Liste wird fortgesetzt. Ich denke, trotz der Integration gibt es kostenlose Alternativen, die weit überlegen sind.

    03 February 2010
    Dave Markle
  • Ich bin kürzlich bei CodePlex einem Open Source-Projekt beigetreten. Sie verwenden TFS für ihre Quellcodeverwaltung und ich muss sagen, dass es absolut großartig ist. Ich bin bisher unglaublich beeindruckt. 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 ist in etwa zwei Klicks, wenn Sie bereits alles ordnungsgemäß konfiguriert haben.

    Jetzt. Lohnt sich der hohe Preis? Ich glaube nicht Die Arbeit an Projekten bei CodePlex hat den Vorteil, dass ich die nötige Erfahrung mit TFS sammeln kann, falls ich sie später irgendwo einsetzen muss. Wenn Sie eine gute IDE-Integration für Ihre Quellcodeverwaltung wünschen, nutzen Sie das VisualSVN Integrationspaket. Es ist eine viel, viel billigere Investition, um viele der gleichen Funktionen zu erhalten (kostenlos auf Computern, die keine Domänencomputer sind).

    17 August 2012
    bahrep
  • Wir sind ein VS.NET-Shop und haben Folgendes implementiert:

    1. Bugzilla zur Problemverfolgung
    2. Apache Subversion als Back-End-Quellcode-Repository
    3. VisualSVN-Server zum Verwalten 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 für den Who-TFS-Prozess zu engagieren, sind SVN und Open Source-Tools der richtige Weg.

    17 August 2012
    bahrep
  • Wie andere darauf hingewiesen haben, bietet TFS Ihnen viel mehr Funktionen als SVN in Form von Projektmanagement und dergleichen. Ich habe beide verwendet und bei der Implementierung von TFS mit sehr großen Unternehmen gearbeitet. Hier sind meine zwei Cent.

    1) Wenn Sie TFS 2005 verwenden, aktualisieren Sie auf TFS 2008. Sie werden es Ihnen danken mir. In TFS 2008 gibt es unzählige Verbesserungen, die die Funktionsfähigkeit verbessern.

    2) Wenn Sie in Visual Studio leben und die IDE-Integration wünschen, gehen Sie mit TFS. Ich habe die SVN-Integration verwendet und greife fast immer auf TortoiseSVN zurück.

    3) Wenn Sie die Idee haben, dass Konten in die Windows-Authentifizierung integriert werden, gehen Sie zu TFS. Die Verwaltbarkeit von diesem Ende ist schön. Es mag Haken für SVN geben - ich bin nicht positiv, aber wenn Sie die GUI-gesteuerte Verwaltung mögen, ist TFS schwer zu überbieten.

    4) Wenn Sie Metriken nachverfolgen müssen oder Mit TFS können Sie einfachere Methoden implementieren, z. B. Check-in-Richtlinien.

    5) Wenn Sie Leute haben, die es nicht implementieren, wenn es nicht MSFT ist, gehen Sie zu TFS.

    6) Wenn Sie mehr als nur .NET (Java-Work, Eclipse usw.) tun, gehen Sie mit SVN. Ja, es gibt sehr gute Produkte (wie Teamprise), die gut mit TFS funktionieren. Wenn jedoch nicht die anderen Sprachen ein kleiner Teil Ihres Shops sind, bleiben Sie bei SVN.

    Abgesehen davon sind die SCM-Funktionen von beiden in etwa gleichwertig. Sie verzweigen und mischen sich, die beiden führen atomare Check-Ins durch, sie unterstützen Umbenennungen und Verschiebungen. Ich denke, für Leute, die gerade erst mit dem Verzweigungs- und Zusammenführungskonzept beginnen, ist es schön, die Verzweigungen im Source Control Explorer sichtbar zu machen.

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

    Ich würde die 180-tägige Testversion von TFS herunterladen und ausprobieren. Führen Sie eine Testversion nebeneinander aus. Ich denke, du wirst glücklich sein, egal was

    07 September 2008
    Cory Foy
  • Wie Ubiguchi darauf hinweist, ist TFS kein Produkt zur Versionskontrolle. Der Kauf von TFS mit der Absicht, es nur für die Versionskontrolle zu verwenden, wäre eindeutig eine Geldverschwendung. TFS ist eine integrierte Suite von Tools zur Automatisierung aller Aspekte des Application Lifecycle Management (und ziemlich auf "The Enterprise" ausgerichtet.)

    Auch in Ben S 'Beitrag - das verstehe ich nicht Ihr Kommentar zu Sperren In TFS sind überhaupt keine Sperren erforderlich. Administratoren können TFS so konfigurieren, dass es wie VSS (von einigen unklaren Kunden geforderte Funktionen) bis "Get-Latest on Checkout" funktioniert, was meiner Meinung nach auch einen Check-Out durchführt lock.

    Durch "normale" Verwendung von TFS wird ein Benutzer jedoch zur Eingabe des Sperrtyps aufgefordert - und der Standardwert sollte "none" sein. Ein Benutzer kann auswählen Ein Check-Out (oder eine Check-In-Sperre) - dies ist jedoch nicht erforderlich. Wenn Sie keine Sperren wünschen, verwenden Sie sie nicht.

    TFS verfolgt welche Benutzer haben auf dem Server aus verschiedenen Gründen auschecken zu können (aus Leistungsgründen (machen Sie die Aktualisierung schneller)) und für das Projektmanagement (ich möchte gerne sehen, welche Entwickler Dateien ausgecheckt haben und wie lange sie ausgecheckt haben).

    Ich kenne mich mit SVN nicht wirklich aus (ich habe es noch nie verwendet) - daher kann ich nicht zusammenarbeiten Bemerkung, dass "Mergeing mit TFS schlechter ist" - und nicht den Merge-Fehler, den Ben S gemeldet hat, getroffen hat, aber ich hatte große Erfolge beim Verzweigen und Zusammenführen mit TFS.

    Anwendungsfall, von dem ich weiß, dass TFS 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 (2005 war es düster), hat aber noch einen langen Weg vor sich. Wenn Sie Entwickler haben, die häufig für längere Zeit vom Netzwerk getrennt werden müssen (oder möchten), ist SVN wahrscheinlich die beste Wahl.

    Eine weitere Funktion, die Sie für SVN beachten sollten Fans, die TFS verwenden, sind die

07 September 2008
fuzzbone
  • TFS ist abscheulich. Zu diesem Zeitpunkt verwende ich lokal die Versionskontrolle mit SVN (w / Live Mesh für Backups), da ich einige Probleme mit TFS habe. Das Hauptproblem ist, 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, den neuesten Stand von TFS erhalten und alle Dateien sind auf dem neuesten Stand. Es ist ein dummes System, bei dem Sie nicht garantieren können, dass Sie die richtige Version der Dateien haben. Dies führt zu zahlreichen Ärgernissen:

    • TFS muss informiert 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. Außerdem werden alle Dateien in NTFS als Readonly festgelegt.

    TFS unterstützt zwar das Zusammenführen, es ist jedoch ein Check-In / Checkout-System. Wenn Sie eine Datei bearbeiten, werden Sie häufig feststellen, dass sie für andere Entwickler gesperrt ist. Es gibt verschiedene Möglichkeiten, aber das System ist so kompliziert, dass Sie immer auf das Problem stoßen werden. Beispielsweise haben unsere Entwickler festgestellt, dass sie alle Dateien umgehen können, die in NTFS schreibgeschützt sind, indem sie eine gesamte Lösung auschecken, wodurch eine exklusive Sperre für alle Dateien festgelegt wird. Ich habe dies einige Male gemacht, weil Subversion dieselbe Syntax für das Checkout hat, die keine Sperre erhält.

    Schließlich ist Team Explorer (der Client) satte 400 MB groß. Für den TFS-Server sind SharePoint und zwei Tage für die Installation erforderlich. Das Subversion-One-Click-Installationsprogramm ist ungefähr 30 MB groß und der Server wird in weniger als einer Minute für Sie installiert. TFS hat viele Funktionen, aber das Fundament ist so wackelig, dass Sie es nie brauchen werden. TFS ist in Bezug auf die Lizenz teuer, und in der Zeit verschwenden Entwickler keine Zeit mehr mit Stackoverflow, anstatt Code zu schreiben: P

    18 August 2009
    James
  • Hier ist eine Open Source-Version von VisualSVN mit dem Namen Ankhsvn viel besser jetzt, da collabnet es übernommen hat.

    27 May 2010
    Donny V.
  • Wenn Sie nur die Quellcodeverwaltung benötigen, ist TFS ein Overkill. Einer meiner früheren Arbeitgeber hatte TFS, VSS und Subversion in ihrem Unternehmen. Wir hatten kein Active Directory oder Exchange Server 2003 in unserem Unternehmen. Daher haben wir auf dem TFS-Server separate Benutzer erstellt, sodass Entwickler ihn verwenden können. Wir hatten die gleichen Probleme mit dem Zusammenführen, die Ben Schierman erwähnte, und andere fehlerhafte Verhaltensweisen, die uns in Richtung Subversion getrieben haben Ihr Budget, die Größe Ihres Entwicklungsteams sowie die zur Konfiguration / Wartung Ihrer Lösung zur Verfügung stehende Zeit und Personalstärke. Wenn Sie die zusätzlichen Funktionen zur Problemverfolgung, Arbeitselemente und Projektstatistiken von TFS nutzen möchten, lohnt es sich möglicherweise, 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 niedrigeren Preis haben könnte.

    In einer idealen Umgebung mit Active Directory, Exchange Server 2003 oder höher und dedizierte Mitarbeiter für das Repository sind eher TFS als gute Wahl.

    09 January 2011
    Scott Lawrenceuser1498543
  • Ich habe sowohl am Arbeitsplatz als auch zu Hause gearbeitet. Sie sind beide sehr cool für sich. Die einzige Zeit, zu der ich TFS empfehlen würde, ist, wenn Sie mehr Funktionen als nur die Quellcodeverwaltung verwenden. Wenn Sie lediglich eine Quellcodeverwaltung benötigen, können Sie mit SVN nichts falsch machen. Aus diesem Grund.

    1. VisualSVN-Server Dies ist ein vollständiger SVN-Server mit einem schönen Plugin, mit dem er verwaltet werden kann. Sie können die Windows-Authentifizierung direkt über die Benutzeroberfläche verwenden. Einfach.

    2. Schildkröte Die Schildkröte reicht aus sagte.

    3. ankhsvn Das ist es ein tolles 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 jetzt die vollständige Integration kostenlos.

    Das oben genannte Setup ist 100% kostenlos und bringt Sie durch, was Sie benötigen Quellensteuerung.

    08 September 2008
    pete blair