CVS und SVN Clientsoftware

Bearbeiten

Wie schon erwähnt, sind CVS und SVN-Clients Laienhaft ausgedrückt soetwas wie Programme zum Herunterladen von Dateien eines Dateiservers. In diesem Falle ein Server, der auf die Aufbewahrung von Quellcode eines Computerprogrammes spezialisiert ist. CVS heißt Concurrent Versioning System und ist der ältere Vertreter dieser beiden Systeme. Er wird mehr und mehr von seinem neuentwickelten Nachfolger SVN abgelöst. Die Ansammlung der Dateien auf diesem Server wird Repository genannt (abgekürzt auch Repo). Einige solcher Repos sind sogar per Browser über einen Webclient einzusehen und es ist dadurch möglich einzelne Dateien aus so einem Repo per Browser herunterzuladen, ohne einen SVN oder CVS-Clientprogramm auf den eigenen Rechner installieren zu müssen.

Checkout

Bearbeiten

Als Übersetzer wird es in der Regel nicht nötig sein, einen schreibberechtigten Zugang zu solch einem Repository zu bekommen, da sich die Arbeit nur auf eine Datei beschränkt und diese nicht sehr häufig geändert wird. Aus diesem Grund wird hier nur der anonyme, lesende Zugriff auf ein Repo beschrieben. Ein herunterladen von Dateien aus dem Repo wird als Checkout bezeichnet.

Um die neueste Version der Software herunterzuladen wird nur ein Befehl auf der Kommandozeile benötigt, der ungefähr so aussehen könnte:

svn co http://svnserver.texteditor.org/trunk texteditor

Das Kurzzeichen co ist die Abkürzung für checkout. Dieser Befehl lädt das gesamte aktuelle Quellcodeverzeichnis (TRUNK) vom Server in ein Unterverzeichnis auf der lokalen Festplatte in das Unterverzeichnis texteditor/trunk. Falls Sie eine Firewall haben, kann es sein, das sie den Port für SVN dort freigeben müssen. Der Port lautet 3690.

Um dieses lokale Repo mit der Kommandozeile auf den neuesten Stand zu bringen, wird blos in dem Unterverzeichnis /texteditor der Befehl svn up eingegeben. Bei bestehender Internetverbindung werden dann alle von den Programmierern geänderten Dateien auf ihrem Computer aktualisiert.

Trunk und Branch

Bearbeiten

Opensource-Projekte halten eine gewisse Ordnung in der Softwareerstellung und der Freigabe von Releaseversionen (zur Veröffentlichung Freigegeben) ein, die ganz klar zwischen Software unterscheidet, die für die breite Öffentlichkeit als tauglich gekennzeichnet ist und zwischen Software, die zwar auf dem neuesten Stand der Entwicklung ist, aber noch ungetestet und wahrscheinlich noch Fehlerbehaftet ist. Deshalb werden verschiedene Zweige von Entwicklungsständen mit unterschiedlichen Namen im Repository bedacht. Die aktuelle Fortentwicklung findet immer in TRUNK statt. Hier kann es minütlich Änderungen am Quellcode durch alle schreibberechtigten Entwickler geben. Wenn eine Entwicklung von der Mehrheit der Entwickler als Stabil und Veröffentlichungswürdig erachtet wird, dann wird vom aktuellen Stand der Entwicklung (Trunk) ein Abbild angefertigt und dann als BRANCH+Versionsnummer gekennzeichnet. Ab diesem Zeitpunkt dürfen in dem Zweig Branch keine Neuentwicklungen an der Software eingebaut werden, da sich sonst Fehler einschleichen könnten. Neuentwicklungen werden ausschließlich in Trunk eingefügt. Wenn ein Fehler in einem Branch vor dem Release gefunden wird, dann wird er natürlich in Trunk und in Branch beseitigt. Nach einem Release wird an dem Branch in der Regel nichts mehr verändert und von dem Branch mit der Versionsnummer ein TAG+Versionsnummer erstellt.

Diese Information ist wichtig, um zu verstehen, wie der generelle Ablauf in der Softwarentwicklung bei Opensource-Projekten ist.

Kdesvn SVN-Client für KDE

Bearbeiten
 

Hier ist das Programm Kdesvn zu sehen, wie ein Repository geöffnet ist, das einige Dateien in Unterverzeichnissen auf den neuesten Stand zu bringen hat. Nach dem Öffnen des Programms und der Auswahl eines bestehenden Repositorys auf meiner Festplatte, wird sofort ein Abgleich der Daten des Repos auf meiner Festplatte mit dem Repo des Projekts durchgeführt. Dabei werden noch keine Dateien übertragen, sondern nur der Vergleich der Daten durchgeführt. Um mein lokales Repo auf den neuesten Stand zu bringen, drücke ich die dritte Taste von links (Erneuere auf HEAD Repository). Das ist so ziemlich die einzige Taste die jemand, der keinen Schreibzugriff auf das Repo des Projektes hat, benutzen muss.

Wenn noch kein lokales Repo besteht, dann wird die Taste Checkout eines Repositorys gedrückt. Daraufhin öffnet sich ein Fenster, wie unten zu sehen ist. Dort wird in der oberen Eingabezeile der Servername eingegeben und in der darunter der Verzeichnisname in den das Repo lokal gespeichert werden soll.

HEAD bedeutet in diesem Fall, das auf die neueste Version upgedatet werden soll.

 

Auf dem Bild ist nur eine Beispiel-URL angegeben, um zu zeigen wie es eingetragen werden muss. Ein checkout wird deshalb scheitern.