docjunior.de
News
20.03.2013
Habe einen UART auf dem Tiny25 gebraucht. Gab keinen. Hab mir selber einen gebaut.

14.09.2011
Ich habe mich entschieden euch ein Geheimnis zu verraten: Ich hab ein Buch geschrieben: Mikrocontroller in Kürze

Menu
zurück
Gästebuch
eM@il
Sitemap
Logindaten
Benutzername

Passwort


Sie sind der
60720. Besucher
home/ Programmierung/ Subversion/
 
Index    Was ist das jetzt schonwieder
   Subversion installieren
   Benutzer konfigurieren
   Einrichten eines Repositories
   Projekte bearbeiten
   Grafische Benutzerschnittstellen zu SVN
   Subversion und Apache
   Subversion Download

Was ist das jetzt schonwieder Auf dieser Seite möchte ich euch ein wenig über Subversion erzählen.
Subversion ist ein Werkzeug zur Versionsverwaltung von Programmquellen. Was das bedeutet?

Stellen wir uns vor, wir schreiben einen Texteditor. Nicht irgendeinen Texteditor, sondern den tollsten Texteditor wo gibt auf die Welt (toTeWe). Inzwischen gibt es eine Fangemeinde die regelmäßig neue Features fordert. Natürlich opfert man seine gesamte Freizeit, Privat- und Familienleben und schließlich sogar seinen Job für dieses Produkt.
Gerade als man dabei ist, eine endgeniale kontextsensitive KI zur automatischen Vervollständigung unbekannter Programmiersprachen zu implementieren (auf vielfachen Wunsch einer einzelnen Person) unterläuft uns ein kleiner Fehler irgendwo im Programm und nichts geht mehr zu kompilieren.
Wir verschwenden Wochen auf die Reparatur des Problems und finden es nicht.

Wir schreiben also eine Mail an unsere Fangemeinde: toTeWe is dead!

Schade drum. Job, Familie, Freunde, toTeWe: Alles weg.

Was aber, wenn wir unseren Quellcode gesichert hätten und per Knopfdruck den Projektstand von vor vier Wochen wiederherstellen könnten?
Wir würden unserem größten Fan einfach sagen, dass so eine KI quatsch ist und uns um andere Erweiterungen kümmern, als wäre nichts gewesen.

Das Speichern der einzelnen Versionsstände des Projekts ist die Hauptaufgabe von Subversion, kurz SVN. Dabei ist es relativ egal, ob nur eine Person an einem Projekt arbeitet oder eine größere Gruppe. Subversion hat viele, viele schöne Eigenschaften, von denen hier nur einige genannt werden sollen:

  • Versionierung von Text- und Binärdateien
  • Platzsparendes Speichern der Daten durch inkrementelle Sicherung (Nur die Änderungen werden gespeichert
  • Zugriffskontrolle für das gesamte Repository
  • Entwicklungszweige (Man kann an Version 2.0 arbeiten und gleichzeitig 1.2 pflegen, ohne ein neues Repository zu benötigen)
  • Konfliktkennung und -Bereinigung (Verhindert u.a. das Überschreiben von Änderungen anderer Entwickler)
  • u.v.m.


  • Subversion installieren Hier gibts es je nach Betriebssystem viele viele unterschiedliche Varianten. Mein Liebling ist Debian:

    apt-get install svn

    Für Windows lädt man sich den Installer herunter (siehe Link unten) und startet ihn.


    Benutzer konfigurieren Grundsätzlich gibt es zwei verschiede Möglichkeiten der Benutzeradministration. Zum einen ist es möglich, diese einem Apache-Webserver zu überlassen. Dazu muss dem Apache unter anderem das Mod-WebDAV angebunden werden.
    Die andere Möglichkeit ist die Nutzung des subversion-eigenen Servers, welcher ein proprietäres Protokoll nutzt.


    Einrichten eines Repositories um ein Repository zu nutzen, muss man erst einmal eines haben. Subversion besitzt ein eigenes Programm zum Administrieren der Repositories: svnadmin.

    Die einzelnen Möglichkeiten des Programms können ganz gut über die Anweisung

    svnadmin help [parameter]

    herausgefunden werden.

    Zur Kreierung eines Repositories wechseln wir in das Verzeichnis /home/svn/repos (oder ein beliebiges anderes. ggf. anlegen!) und geben dort folgenden Befehl ein:

    svnadmin create meinrepos

    Es wird nun ein Repository angelegt. Nutzbar ist es allerdings nur bedingt. Um das Repository in vollem Umfang nutzen zu können, muss man eine initiale Menüstruktur einfügen.

    Wir wechseln nach /tmp (oder eben ein anderes temporäres).
    Dort erstellen wir uns folgende Verzeichnisstruktur mittels der Anweisung unseres Vertrauens:

    meinrepos
    +--> trunk
    +--> tags
    +--> branches

    Dann wechseln wir in das verzeichnis meinrepos. Theoretisch können wir jetzt noch beliebige Informationen einbauen. z.B. eine Textdatei über euch oder das Repository.

    Jetzt wird das Ganze ins Repository importiert. Subversion kennt hierzu den Befehl svn import. Diesem übergibt man zuerst das Verzeichnis, welches importiert werden soll, dann das Repository in das importiert werden soll. Es gibt hier noch weitere mögliche Parameter, die man mittels

    svn help import

    heraus bekommen kann. Der Wichtigste ist der Pameter -m, welcher eine Releasenote für den Checkin speichert. Ihr könnt also eure Änderungen direkt dort vermerken. Wird -m nicht angegeben (es kann auch leer sein, mittels -m "" ) startet svn automatisch einen Editor zum Eingeben der message.

    Das Ganze sieht dann so aus:

    svn import . file:///home/svn/repos/meinrepos -m "Initialisierung des Repositories"

    Herzlichen Glückwunsch! Das Repository ist jetzt betriebsbereit.


    Projekte bearbeiten So weit, so gut. Wie gehen wir jetzt aber vor, um auch unser Projekt zu verwalten?

    Zuallererst müssen wir eines aufsetzen.
    Wir legen uns einen weiteren temporären Ordner an

    mkdir meinProjekt
    cd meinProjekt

    weiter benötigen wir eine Datei zum Einchecken. Meist nehme ich eine README.

    echo "Initialisierung des Projekts am $(date -R)" >README

    Dies importieren wir in subversion:

    svn import . file:///home/svn/repos/trunk/meinProjekt -m "Projekt initialisiert"

    die bisher erstellten Verzeichnisse und Dateien können wir nun getrost in den Müll werfen.


    Als nächstes wird das somit importierte Verzeichnis wieder ausgecheckt.

    Wir legen mit dem Editor unseres Vertrauens ein Projekt an. Anschließend wechseln wir in das Projektverzeichnis und geben folgendes an:

    svn checkout file:///home/svn/repos/trunk/meinProjekt .

    wenn wir uns jetzt das Verzeichnis anschauen, sehen wir die README-Datei und ein Verzeichnis .svn.
    In diesem sind sämtliche notwendigen Informationen enthalten um mit dem Repository die Verbindung zu halten.

    Erweitern wir die README
    echo "Änderung des Projekts am $(date -r)" >>README

    anschließend können wir mittels

    svn commit . -m "Änderung"

    unsere Änderungen einchecken.
    Jetzt möchte man doch aber gelegentlich sein Projekt erweitern. Legt man eine neue Datei an und führt einen commit durch, bekommt man die Meldung, dass diese noch nicht unter Versionskontrolle ist.
    Wir müssen sie bei Subversion anmelden. Hierzu gibt es die Option add. Anschließend können wir einen normalen commit vornehmen.

    echo "Neue Datei" > Datei2
    svn add Datei2
    svn commit . -m "Neue Datei"

    Natürlich müssen wir nicht jede Datei einzeln hinzufügen. Man kann mit Wildcharts arbeiten. Verzeichnisse werden rekursiv hinzugefügt, so sie noch nicht im Repository stehen.

    Möchte man aus dem Repository mögliche Änderungen heraus ziehen- was man grundsätzlich vor jedem Bearbeiten des Projekts machen sollte, genügt ein

    svn update

    und sämtliche Änderungen im Repository werden lokal übernommen.


    Grafische Benutzerschnittstellen zu SVN folgt..


    Subversion und Apache Eines der interessantesten Features von SVN ist die Möglichkeit der Zusammenarbeit mit dem Apache Webserver. Diese ermöglicht einen Zugriff auf Subversion über native Protokolle (http, dav) und bietet zudem die Möglichkeit der Authentifizierung über Apache und die Einsicht in das Repository mittels Webrowser.

    Eine Konfigurationsanleitung folgt alsbald..


    Subversion Download Subversion Download - Subversion wird inzwischen von verschiedenen Seiten zum Download geboten. Eine der bekanntesten Quellen ist tigris.org. Hier wird auch eine grafische Oberfläche namens TortoiseSVN zum Download angeboten.


    cmsJr by Jens Rapp, 2006 - 2008