Tags:
create new tag
, view all tags

SVN Guide für den Umgang mit SVN

Entwurf Yves Serrano, 07.05.2007

Zweck: Hier sollen Richtlinien für den Umgang mit SVN für die Gruppe WAI erarbeitet werden.

SVN trunk, tags & branches

In dem jetzigen SVN gibt es keine trunk, tags und branches Verzeichnisse. Von den einzelnen Projekten können so die Entwicklungs-Versionen und die Produktiven-Versionen nicht getrennt werden. Um dies zu erreichen sollten die SVN üblichen Unterverzeichnisse trunk, tags & braches verwendet werden. Siehe als Beispiel https://svn.id.ethz.ch/viewvc/blog/

Anders als bei CVS sind dies ganz normale Verzeichnisse und nicht spezielle Features von SVN, es sind Konventionen die innerhalb der SVN Gemeinde entstanden sind.

  • trunk Dies ist das Verzeichnis in dem die aktulle Entwicklungs stattfindet
  • tags In diesem Verzeichnis befinden sich Releases und andere Code-Momente die man festhalten möchte. Daten innerhalb diese Verzeichnisses sollten nicht mehr geändert werden (könnten aber, z.B. bei Fehlern).
  • branches Diese Verzeichnis beinhaltet unterschiedliche Entwicklungstränge die man getrennt haben möchte von der trunk Entwicklung. Es ist usus hier auch die Verzeichnisse für Bugfix Branches zu erstellen.

Tags und Branches kann man mit svn copy erstellen, dies kann man direkt mit dem Repository URLs machen, z.B. =svn copy https://svn.id.ethz.ch/blog/trunk https://svn.id.ethz.ch/blog/tags/wp-1.0_eth-0.1= .

Checkout & Switch

Wenn man z.B. den trunk des Blogs auschecken möchte dann geschieht dies mit svn co https://svn.id.ethz.ch/blog/trunk blog , bei einem tag wäre dies dann z.B. svn co https://svn.id.ethz.ch/blog/tags/wp-1.0_eth-0.1 blog .

Mit svn switch kann zwischen verschiedenen Versionen wechseln. Trunk -> Tag z.B. so svn switch https://svn.id.ethz.ch/blog/tags/wp-1.0_eth-0.1= im blog Verzeichnis . Der Befehl =svn info |grep URL zeigt an was man ausgechecked hat.

Checkin

Wenn man einen commit macht so geschieht dies nur innerhalb der SVN Url in der man sich gerade befindet. Hier noch ein paar empfohlenen Regeln:

  • Commit Messages sollten in der Vergangenheitsform geschrieben werden svn commit -m "fixed bug #123 in ..."
  • Wenn man etwas zu einem Branch commited dann sollte man diesen als prefix der Meldunge nehmen. svn commit -m "wp-1.0_eth-0.1: fixed bug in #123 ..."
  • Es sollten eher kleinere ins sich abgeschlossene commits gemacht werden anstatt sehr viele unterschiedliche Änderungen auf einmal zu commiten.
  • ausführliche commit Meldungen

SVN & trac

Wenn man SVN mit trac (Wiki, Ticket System, SVN Browser http://trac.edgewall.com) verwendet so empfiehlt es sich die Nummer des Tickets anzugeben welches durch den commited Code gefixed wurde, z.B. svn commit -m "fixed bug #123 in ..." . #123 steht dann für das Ticket Nr 123. Durch diese speziellen commit Meldungen entsteht eine automatische Verlinkung im Trac vom Code zum Ticket.

Offene Diskussionspunkte

  • welche Sprache für commit Meldungen? nur Englisch?
  • Release Nummerierung, Bugfix branches

-- YvesSerrano, 07.05.2007

Topic revision: r1 - 2010-12-15 - vermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback