Dies ist eine alte Version des Dokuments!


Subversion am NTB

Subversion (kurz SVN) ist eine freie Software zur Versionsverwaltung von Dateien und Verzeichnissen.

Übersicht

SVN verwendet für die Versionierung eine einfache Revisionszählung. Diese findet in einem zentralen (engl. repository) Projektarchiv statt. Der Entwickler arbeitet mit einer lokalen Kopie der Daten. Diese werden jeweils mit dem Server synchronisiert. Dabei wird zwischen einem Commit und einem Update unterschieden. Beim Update wird die lokale Kopie auf die selbe Revision wie der Server gebracht. Führt man ein Commit durch, so werden alle Änderungen die man lokal getätigt hat zum Server übertragen. Dabei kann es zu einem Konflikt kommen, wenn der folgene Fall eintritt: Die lokal geänderte Datei wurde zwischenzeitlich von jemand anderem ebenfalls verändert und bereits wieder hinzugefügt. Aus diesem Fall muss vor jedem Commit ein Update ausgeführt werden. Somit kann SVN sicherstellen, das keine der lokal geänderten Dateien bereits auf dem Server geändert wurden. Ist dies der Fall, kann man beim Update die lokale Kopie mit der auf dem Server zusammenführen (engl. merge).

Am NTB ist TortoiseSVN installiert. Diese Seite erklärt den Umgang mit diesem Tool.

Richtlinien für den richtigen Umgang mit SVN

Diese Richtlinien stützen sich auf http://svnbook.red-bean.com/en/1.4/index.html

  • Die aktuelle und gemeinsame Version befindet sich stets im Verzeichnis trunk. Trunk beinhaltet also immer die Hauptlinie der Entwicklung.
  • Branches sollen erstellt werden für Entwicklungen, die relativ radikale und weitergehende Änderungen von der Hauptlinie bedingen. Ein Branch wird stets im Verzeichnis Branches angelegt. Das wesentliche Merkmal eines solchen Branches gibt dem Branch den Namen. In Branches wird ein Unterverzeichnis mit diesem Namen angelegt. Also z.B. branches/NewMath/. trunk und branches sind nun zwei unabhängige Entwicklungslinien. Achtung: Die Revisionsnummern in trunk und branches laufen gemeinsam weiter (siehe p80 in http://svnbook.red-bean.com/en/1.4/index.html). Mit zunehmender Entwicklungszeit wird es schwieriger, einen Branch wieder in die Hauptlinie der Entwicklung zu integrieren.
  • Tags sind eine Momentaufnahme eines Projektes in der Zeit. Das leistet natürlich bereits das Konzept einer Revision in svn. Als Tag wird eine Version, z.B. Release 1.2 markiert und im Verzeichnis tags/release-1.2/ abgelegt. In diesem Verzeichnis darf kein „commit“ erfolgen.

SVN-Server am NTB

Das NTB betreibt unter http://svn.ntb.ch einen eigenen SVN-Server. Die meisten Repositories auf diesem sind jedoch weder öffentlich noch für Studenten der NTB zugänglich.

Öffentliche Repositories

Repository Studenten Jeder
ch.ntb.inf.libUsb4Java read read