2009-03-03 11 views
7

Ich arbeite in einem Team von 2 Entwicklern und derzeit verwenden wir VSS und haben keine kontinuierliche Integration oder tägliche Build und wenige Unit-Tests.Subversion/Cruise Control/Nant/Nunit mit visuellen Studio-Projekten und Lösungen

Ich möchte unsere Quellcodeverwaltung auf Subversion umstellen und gleichzeitig einen professionellen Prozess starten.

Subversion/Cruise Control/Nant/Nunit erscheint eine ziemlich beliebte Kombination von dem, was ich bisher gesehen habe, und ich habe gerade diese auf einer Ersatzmaschine installiert.

Ich habe die Subversion Handbuch heruntergeladen und das ist 400 Seiten lang für nur eines der Werkzeuge!

Eigentlich möchte ich nur mit bewährten Mustern, die sich bereits in der Praxis bewährt haben, aufrüsten und dann je nach Bedarf optimieren und meine Vertrautheit mit den Werkzeugen steigern.

Kennt jemand Bücher/Tutorials/Komplettlösungen, die nur das Wesentliche abdecken, um mich mit dieser speziellen Kombination von Tools so schnell wie möglich zum Laufen zu bringen?

Antwort

5

Ich benutze Subversion seit einigen Jahren und ich muss sagen, dass die beste Einführung, die ich gefunden habe, in der Hilfedatei für TortoiseSVN enthalten ist. TortoiseSVN ist ein weiterer kostenloser Client für Windows mit Explorer-Integration. Ich empfehle dringend, zuerst die Tortoise-Hilfe zu lesen, noch bevor die Original-Subversion-Dokumentation erstellt wurde. Bei Bedarf verweist er auf die offiziellen Dokumente.

Schildkröte ist auch zufällig mein Lieblingskunde. Tatsächlich ist es auf den meisten Maschinen die einzige Subversion-Komponente, die ich brauche. Es führt alle Funktionen aus, die ich routinemäßig verwende, einschließlich der Repository-Erstellung. Das ist zwar kein Problem mit den regulären Befehlszeilentools, und ich installiere diese auch in den meisten Fällen, aber ich finde nur die CLI-Tools, die für die Automatisierung von Skripten und (seltenen) Repository-Wartungsfunktionen benötigt werden.

Ich bin dabei, unsere eigene Build-Umgebung bei der Arbeit zu rearchitect, also gehe ich die Optionen für viele Build/Entwicklungstools durch. Hier sind Tools, die ich empfehlen kann oder mit guten Empfehlungen von anderen kommen:

WinMerge: sehr empfehlenswert, freies diff-Tool, nach TortoiseSVN für die beste Integration installieren. Ich benutze dieses Tool täglich für viele Zwecke, einige außerhalb der Entwicklung.

TeamCity: CI-Server, der gut poliert scheint. Ich habe es noch nicht ausprobiert, aber es ist der führende Kandidat für CC.NET, da ich Erfahrung mit CC.NET (ein Jahr) und die guten Kritiken, die es erhält, habe. Hudson ist eine weitere gut überprüfte Option.

VisualSVN Server: ein empfohlener kostenloser http (s) Server für SVN, der AD-Integration für Berechtigungen und eine Microsoft-Stil-MSC-Konsole bietet. Ich habe es gerade bei der Arbeit fertiggestellt und es ist sehr einfach. Ein Muss, wenn Sie Remote (IP) Check-in/Check-out, SSL-Verschlüsselung, Repository-Hook-Skripte und andere serverbasierte Funktionen benötigen.

VisualSVN: ein gut geprüftes Visual Studio Plug-in für SVN. Habe dieses nicht versucht, aber es wird als ein Kinderspiel betrachtet. [Edit: entsprechend dem, was ich hier auf Überlauf gelesen habe, ist AnkhSVN eine freie Option, die über das selbe funktioniert.]

SVN-Monitor: empfohlene freie Monitor-Software, die Sie auf Änderungen im Repository warnt. Konfigurierbar, was es überwacht und welche Aktion es benötigt. Hängt davon ab, dass TortoiseSVN installiert wird.

BugTracker.NET: empfohlener kostenloser Issue-Tracking-Server. Features SVN-Integration, um Probleme mit Subversion-Revisionen zu verknüpfen. Nicht sicher, ob TeamCity eine ähnliche Funktion hat, aber wir verwenden dies bereits außerhalb der Entwicklung, um Helpdesk-Probleme zu verfolgen, und es ist großartig für ein kostenloses Paket.

Ich habe keine Erfahrung mit Komponententests, Berichterstattung, Dokumentationstools für .NET, also kann ich dort nicht kommentieren.

Ich bin ein Pythonista obwohl, ich werde eine Sache stecken Python kann nützlich sein für SVN, das ist, dass Sie die PySVN-Bibliothek verwenden können, um jede Art von automatisierten Repository-Arbeit, die zu komplex für das Scripting mit dem Befehl ist -line Werkzeuge. Ich benutze es zum Erstellen von Tags, sobald ein Build bereit ist, markiert und bereitgestellt zu werden.

Wählen Sie einige dieser Tools und Sie werden dem Spiel voraus sein. Prozesse um sie herum zu entwickeln und Personal auszubilden, das ist immer noch eine Aufgabe für dich. :)

+0

Ich würde empfehlen, ein Drei-Wege-Diff-Tool über WinMerge zu verwenden, das nur Unterschiede zwischen zwei Versionen einer Datei anzeigen kann (und keine Änderungen an Dateien im Vergleich zu einer Ursprungsversion). Mein persönlicher Favorit ist SourceGear DiffMerge (kostenloser Download). –

+0

Danke für die ausführliche Antwort! –

1

Wenn Sie einen Subversion-Server hochfahren wollen und so schnell wie möglich laufen, ohne eine Menge über den Repo zu wissen, lesen Sie Visual SVN here. Es ist eine GUI-App, mit der Sie Repos einrichten können, ohne viel Dokumentation durchlesen zu müssen. Es gibt auch einen Dimecast here.

Soweit mit CC.NET Integration nachschlagen CC.NET Dokumentation zu Subversion Steuerblock here, sie haben es ziemlich gut in ihrer Website ausgebrochen, und Sie sollten die XML-Tags für SVN finden ziemlich leicht können.

Sie sollten auch die Implementierung clientseitiger Tools wie Tortoise SVN und Ankh SVN ausprobieren.

Für NANT, überprüfen Sie diese Dimecasts here. Große Tutorials, wie man effektiv Nant benutzt.

+0

Ich würde Ankh SVN 2.0 über Visual SVN empfehlen. Es ist nicht nur frei (in beiden Richtungen), Ankh verwendet Microsofts API für die Quellcodeverwaltung, während Visual SVN die Dinge mit einem Add-In kombiniert. Wenn Sie die Art des Unterschieds sehen möchten, versuchen Sie, Dateien umzubenennen. –

+0

Ich stimme zu, ich habe nur vorgeschlagen, Visual SVN als Repository-Manager zu verwenden. Erstellen, Löschen, Hinzufügen von Benutzersicherheit, Gruppen usw. Ich war mir nicht bewusst, dass Ankh SVN 2.0 diese Art von Funktionalität hatte? – Joseph

+0

Danke Joseph.Ich überprüfe diese :-) –

0

Dies ist wahrscheinlich auf die Frage zur Hand nicht hilfreich, aber ...

Ich sage nicht, dass es nicht ein ... aber selbst wenn Sie diese Anleitung haben, würden Sie eine haben viel lernen zu tun. Sie müssen wirklich jedes der Stücke isoliert lernen, bevor Sie daran denken, sie alle zusammen zu werfen.

+0

Ich sehe Ihren Punkt, aber ich nehme an, dass es immer noch gemeinsame Integrationsszenarien gibt? Vielleicht bin ich ein bisschen zu optimistisch, dass ich eine Ressource finden werde, die gerade passiert, um genau diese Kombination zu decken! –

1

Wie Sie von einem VSS-Hintergrund sind, sehen Sie sich SourceGear Vault und SourceGear Fortress. Wenn sie tun, was Sie wollen, werden sie schneller lernen, da sie für Menschen mit einer VSS-Denkweise bestimmt sind.

Ich denke, dass sie für kleine Teams sogar frei sein können.

(Sie werden noch wünschen nUnit zum Testen verwenden, aber ich würde die Quellcodeverwaltung und kontinuierliche Integration erhalten erste aussortiert.)

Wenn Sie mit Subversion gehen finden Sie wird es sehr stabil ist und mehr dann in der Lage, die Bedürfnisse der meisten Teams zu erfüllen. Schauen Sie sich TortoiseSVN für eine einfache Benutzeroberfläche auf Subversion

+0

Danke, ich habe gute Dinge über Subversion gelesen und es macht mir nichts aus der VSS-Denkweise rauszukommen :-) Ich verstehe deinen Standpunkt bezüglich der Sortierung von SCC und kontinuierlicher Integration, aber ich wollte nur herausfinden, was mein ideales Buch an dieser Stelle behandeln würde . Dieses Buch existiert vielleicht nicht! –

2

Ich habe aufgezeichnet a video, die alle Grundlagen einschließlich Setup von SubVersion, CruiseControl.NET veranschaulicht. Ich illustriere sogar einen kaputten Build. Das verwendete Dev-Tool war Delphi, hätte aber leicht VS.NET sein können.

+0

Ich fange gerade an, über CI zu lernen, sah deinen Beitrag, sah das Video und es war ziemlich hilfreich. Es wäre großartig gewesen, wenn Sie einige der minimalen Serveranforderungen skizziert hätten (sieht so aus, als hätten Sie eine dev.-Maschine benutzt), aber das ist etwas, was ich herausfinden kann. Gut gemacht! – Dave