HowToCode: Fundamentale Sachen mit SVN & Trac

imageBereits in einem sehr frühen HowToCode Beitrag habe ich ein paar "fundamentale" Sachen erwähnt die ein Software-Projekt braucht. In meiner Freizeit bastel ich an einem Community Projekt auf Basis von ASP.NET MVC. Da ein TFS für Community Projekte (die nicht Open Source sein wollen/sind) eigentlich unerschwinglich sind, nutzen wir SVN als Source Code Verwaltung & Trac zum Managen. In diesem Post geht es um die Zusammenarbeit von Visual Studio mit diesen Tools und wo es noch etwas klemmt.

Team Foundation Server – die eierlegende Wollmilchsau

In der Firma nutzen wir (unter anderem) das Team System 2008 und sind auch eigentlich mehr oder weniger zufrieden damit – auch wenn der TFS bzw. dessen TeamExplorer ab und an rumzickt.
Das tolle an diesem Server ist, dass er so ziemlich alles vereint, was man sich wünscht: Von Anforderungsmanagement, über Builds, Source Control, Tests etc. deckt er recht viel ab (ob es immer 100% zufriedenstellend ist, ist eine andere Sache ;) ). In vielen Fällen kann man allerdings nicht auf diesen Server zurückgreifen, weil die Lizenzen auch recht kostenintensiv sind und für kleine Hobby Projekte lohnt es sich er recht nicht. Das Problem dabei: Die Features braucht man irgendwie doch.

Was "braucht" man zum Entwickeln?

In einem Projekt, welches zu den Hobbyprojekten gehört, nehmen wir folgende Sachen:

  • Source Code Verwaltung: Subversion
  • "Mangement"/Bugtracking/WorkItems/Tickets/Wiki: Trac

Diese zwei Sachen, neben Visual Studio, sind eigentlich sehr praktisch und wenn es etwas größere Hobbyprojekte werden unerlässlich.

Ohne Aufgabenmanagement & Bugtracking verliert man recht schnell den Überblick was noch getan werden muss. In kleineren Stil geht das noch, allerdings wird es nach einiger Zeit etwas mühsam und wenn man einen Projektleiter hat, der etwas Wert auf Projektmanagement legt, wird hier sicherlich zustimmen :)

Das ganze kann man selber hosten, aber auch hosten lassen, so nehmen wir z.B. das Angebot von CvsDude.com

Integration von Visual Studio

Wer mit SVN was zutun hat, wird meist auch an TortoiseSVN nicht vorbeikommen. Um eine Integration ins Visual Studio zu bekommen bedarf es noch AnkhSvn.
Jetzt kommt noch was cooles: Wer die Tickets aus dem Trac direkt im Visual Studio bearbeiten möchte dem empfehle ich noch einen Blick auf den TrackExplorer zu werden – angelehnt ist dies sicherlich an den TeamExplorer vom Team System von Microsoft.

Wie sieht das ganze aus?

Trac:

Überblicksseiteimage

Browse Sourcecode (mit Änderungsverfolgung ähnlich Google Code)

image

Weitere Features:

  • Bugtracking/Tickets für WorkItems
  • Tagging
  • Wiki
  • Blog
  • RoadMap

SVN + Tortoise + AnkhSVN + Visual Studio:

Checkin/Checkout direkt im Solution Explorer:

image

image

Das Mergen ist zwar irgendwie im Defaultfall etwas doof, aber nix ist perfekt. Ansonsten ist es sehr nett in Visual Studio integriert. Diese Integration ist durch AnkhSvn hinzugekommen.

TracExplorer:

Das Beste wäre jetzt noch direkt aus dem Visual Studio beim Checkin Tickets auszuwählen und diese dann auf Closed (etc.) zu setzen. Ein Ansatz zeigt der TracExplorer, welcher sich auch nett in Visual Studio integriert:

image

Ticketsübersicht:

image

Bei einem Doppelklick öffnet sich im Visual Studio die Webseite zu diesem Ticket. Es gibt auch leider noch kein Contextmenü in dem man direkt aus dem Visual Studio den Status des Tickets ändern kann – nur mit dem Umweg über die Webseite.

Checkin mit Tickets?

Prinzipell ist dies mit Hilfe von Tortoise möglich, allerdings integriert es sich leider nicht in AnkhSvn, welches wir zum Checkin nutzen. Aber gute Ansätze sind da – und alles für 0€ Lizenzkosten – für Hobbyprojekte oder Open Source Sachen empfehlenswert.

Feedback
Kennt jemand vielleicht doch eine Möglichkeit direkt aus dem Visual Studio heraus Tickets aus dem Trac zu bearbeiten und Checkins damit zu verknüpfen? Es ist kein "dringendes" Feature, aber nett wäre es schon. Hat sonst jemand noch Erfahrungen mit Open Source Tools + Visual Studio gemacht?


Kick It auf dotnet-kicks.de
Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf dem Laufenden bleiben willst, abonniere unseren RSS Feed oder folge uns auf Twitter.

About the author

Written by Robert Mühsig

Robert Mühsig (@robert0muehsig) ist Webentwickler und beschäftigt sich mit Web-Frameworks (vor allem dem ASP.NET MVC Framework) und scheut sich auch nicht vor Javascript. Ansonsten bloggt er über all jene Probleme, die ihm über den Weg laufen. Seit 2008 ist er Microsoft MVP für ASP.NET und er arbeitet bei der T-Systems Multimedia Solutions GmbH in Dresden. Treffen kann man ihn online via Twitter (@robert0muehsig) oder dieser Seite oder bei der .NET User Group Dresden.

17 Responses

  1. Als MVP bekommst du eine kostenlose Lizenz für VisualSVN.
    Bist du mit AnkhSvn bisher zufrieden?

    Als ich das AnkhSvn ausprobiert habe, war es nicht brauchbar.

    Reply
  2. Mit AnkhSvn bin ich eigentlich recht zufrieden. Ich könnte aber mal VisualSvn ausprobieren :)

    Reply
  3. Den VisualSvn-Server kann ich jedem Empfehlen.
    Ich hatte vorher Subversion selber mit einem Apache aufgesetzt und alles eingerichtet. Das wurde speziell in der Benutzerverwaltung und der Rechteverteilung immer recht mühsam und auch nicht gerade übersichtlich.

    Mit dem Server kann man sich subversion in 2 Minuten installieren, kann Benutzer anlegen, Gruppen zuweisen, etc.
    Die Verwaltung ist echt super einfach.

    Das Visual Studio Plugin hatte ich mir noch nicht angeschaut. Ich hab es mir eben installiert und arbeite mal ein paar Tage damit. Bis jetzt sind mir keine nennenswerten Unterschiede zu ANKH aufgefallen.

    Reply
  4. Gibts bei dem Plugin dann ebenfalls Zugriff auf die Tickets/Workitems und kann beim Checkin das entsprechende auswählen?

    Reply
  5. Wenn du die Tickets von TRAC meinst, dann muss man das TRAC-Plugin verwenden.
    Weder ANKH, noch VisualSvn zeigen einem die vorhandenen Tickets.
    Oder hab ich was verpasst? :-)

    Reply
  6. Genau – ich meine die Tickets vom TRAC.

    Gibts noch ein anderes Trac-Plugin oder meinst du den Trac-Explorer.

    Reply
  7. Hallo,

    super Artikel! Privat haben wir zum Homepages erstellen schon immer TortoiseSVN verwendet.

    Das es ein Visual Studio Plugin dafür gibt weiß ich jetzt :)

    Vielen dank!

    Reply
  8. Hallo Robert,

    wir wollten auch erst TRAC einsetzen für uns war es aber ein Hindernis das TRAC nur ein Projekt verwalten kann. Wir setzen daher inzwischen Redmine ein, das unserer Meinung nach neben der Mehrprojektfähigkeit auch in anderen Bereich über TRAC hinausgeht.

    Es gibt hier zwar noch ein paar Funktionen die fehlen (z.B. private Tickets), aber diese Funktionen sollen in den nächsten Versionen kommen. Auch die Benutzeroberfläche finde ich etwas benutzerfreundlicher als TRAC.

    In Sachen Integration fehlte uns bisher die Zeit, aber zumindest kann man beim Einchecken ins SVN die Ticketnummer aus Redmine angeben (z.B. #0815) und diese wird dann bei der Anzeige des Kommentars im Redmine richtig verlinkt.

    Michael

    Reply
  9. @Michael: Das Verlinken der Tickets in den Check-In-Kommentaren beherrscht Trac auch schon.
    Der Clou wäre dann allerdings, wenn man den Status des Tickets direkt beim Check-In ändern könnte…so wie es beim TFS der Fall ist.

    Reply
  10. @Ken: Ja, war mir auch bekannt. Bei einem Projekt an dem ich mitgearbeitet hatte (@Robert: war übrigens bei T-Systems) hatte man die Integration auch ziemlich perfektioniert. Meiner Meinung nach konnte man da auch den Status der Tickets mit ändern über bestimmte Befehle im SVN Kommentar.

    Außerdem konnte man nur einchecken, wenn es das Ticket tatsächlich gab (also ohne Ticketnummer konnte man nix einchecken) und das Ticket musste im richtigen Status sein. Man konnte also nix mehr auf dieses Ticket einchecken wenn es geschlossen war.

    Meiner Meinung nach wurden dann aus Trac gleich noch die Release Notes für eine Lieferung als PDF generiert.

    Viele Grüße
    Michael

    Reply
  11. Grandios dieser Ansatz. Ich hab auch gleich mal Google gefragt…angeblich gehts so:

    Ticket #102 (closed: fixed)

    Das werde ich heute gleich mal ausprobieren.

    Reply
  12. ..geht natürlich nicht. Vorschläge?

    Reply
  13. Hallo,

    @Ken: also so out of the box ging es meiner Erinnerung nach auch nicht, ich versuch mal den Kollegen bei T-Systems zu erreichen, ob der mir verrät was alles zu tun war.

    Michael

    Reply
  14. Ich habs jetzt, wie man den Status der Tickets per Kommentar ändern kann.

    Dazu muss man im SVN noch eine Option setzen…bei cvsdude.com nennt die sich “switch on SVN-Trac hook”. Das sorgt wohl dafür, dass sich das Trac ins SVN integriert und beide auch direkt miteinanden reden können.

    Wie auch immer…habs grad getestet. Es funktioniert.

    Reply
  15. Das ganze funktioniert über Hooks. Bei CVS-Dude (ich kenn die Seite nicht) haben die sicherlich die entsprechenden Hooks realisiert und stellen sie den Benutzen zur Verfügung, so dass man sie dann nur noch über “switch on SVN-Trac hook” aktivieren zu braucht.

    Wenn man ein Projekt auf einem eigenen Server hostet, kommt man nicht umhin, diese Hooks selbst zu implememtieren. Bei VisualSVN kann man die Hooks bearbeiten, indem man die Eigenschaften eines Repositories öffnet und dort dann auf Hooks bearbeiten klickt. Hilfe zu den verschiedenen Hooks finden sich auf der Webseite von SVN (http://subversion.tigris.org, Beispiele: http://subversion.tigris.org/tools_contrib.html#hook_scripts) oder über eine google/bing-Suche.

    Darüber kann man dann auch steuern, dass nur Checkins mit Kommentar erlaubt sind, etc.

    Reply

Comment on this post

Letzte Posts

  • Carriage Return / Neue Zeile in Textareas

    Eine kleine Aufgabe: Jede neue Textzeile (Carriage Return/Wenn man Enter drückt ) in einer Textarea soll ein Element in einer Auflistung sein – wie mach ich das jetzt am einfachsten? Eigentlich ein grundlegendes Element im Web und der Nutzer macht bewusst Absätze – daher wäre es nur gerecht, wenn man das auch entsprechend würdigt. Kleine ...

  • image.png
    Doom, Quake, Wolfenstein & co. Source Code auf GitHub

    id Software, die Macher von Doom, Quake, Wolfenstein & co., stellen regelmäßig ihre älteren Spieltitle als Open Source zur Verfügung. Das Ganze runterzuladen fand ich bisher immer recht mühselig, allerdings gibt es seit kurzer Zeit die Sourcen auch auf GitHub. Darunter Spiele wie Doom 3, Quake 3, Wolfenstein für iOS. Wer also schon immer mal ...

  • image.png
    Twitter Bootstrap 2.0 released & “Release Präsentation”

    Wie bereits vom Twitter Bootstrap Team angekündigt wurde offiziel die Version 2.0 des UI Toolskits “Twitter Bootstrap” veröffentlich. Zudem wurden die Slides, welche bei der Release Party gezeigt wurden auch veröffentlicht: Downloads finden sich auf der Twitter Bootstrap Seite auf GitHub. Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf ...

  • image.png
    Javascript zu Dart Translator

    Dart, Google Javascript Alternative, wurde vor ein paar Monaten vorgestellt und die Webentwickler Szene ist noch etwas gespalten, ob Dart nun überflüssig ist oder einfach nur cool und längst überfällig ist. Um die Sprache näher zu erläutern hat Google die grundlegenden Javascript Basics nach Dart übersetzt. Das Ergebnis ist der “Translator”. Der Name mag momentan ...

  • Twitter Bootstrap 2.0–“Beta”

    Twitter Bootstrap, ein UI-Toolkit für Web-Applikationen von Twitter, erscheint (wie bereits berichtet) demnächst in der Version 2.0. Der offizielle Release ist am 31. Januar, allerdings beginnt jetzt laut Mark Otto (einer der Hauptentwickler von Twitter Bootstrap) die intensive Test-Phase. Das heisst, das es nun offiziel auch die 2.0 Dokumentation online gibt. Im Vergleich zur aktuellen ...

Support us!

Facebook