Home
News
FAQ
Features
Bugs
Changelogs
Download
Quelltexte
Tools
Über FreeXP / Kontakt
XP-Links
Menü ausblenden
| |
Allgemeines
Die Quelltexte von FreeXP werden mit dem Versionsmanagementsystem
CVS verwaltet. Der Zugriff auf den
CVS-Server von FreeXP ist für jeden Interessierten über einen
öffentlichen Gastzugang mit Lesezugriff möglich. Entwickler
benötigen einen Zugang mit Schreibzugriff, um eigene Änderungen
auf den CVS-Server übertragen zu können.
Die "Master"-Kopie der Quelltexte, die sich auf dem CVS-Server
befindet, wird "Repository" genannt; die Kopie davon auf dem
eigenen Rechner heißt "Working Directory". CVS sorgt
dafür, daß beide Versionen synchron gehalten werden.
Umfassende Informationen zur CVS-Bedienung - speziell für Entwickler -
sind der CVS-Dokumentation ("Cederqvist") zu entnehmen, die im
HTML-Format (mit eigens angepaßten Links für lokale Verwendung)
ebenso wie die derzeit aktuelle CVS-Version auf dem FTP-Server von FreeXP
zum Download zur Verfügung steht:
Erstbezug und laufende Aktualisierung der Quelltexte
Es folgt eine allgemeine, praxisorientierte Step-by-Step-Anleitung, wie man
eine Kopie der aktuellen Quelltexte im CVS-Repository in einem lokalen
Verzeichnis auf der eigenen Festplatte ablegt und regelmäßig
aktualisiert.
Der Einfachheit halber geht diese Anleitung von folgender Umgebung aus:
- Betriebssystem Windows 9x/Me/NT/2000/XP
- CVS ist im Verzeichnis C:\CVS installiert und liegt im Pfad
- Lokales Source-Verzeichnis ist C:\SRC
- Es besteht eine TCP/IP-Verbindung zum Internet (DFÜ-Netzwerk)
- Für die Authentifizierung wird die "pserver"-Methode verwendet
Wenn die tatsächlichen Verzeichnisnamen von den o.g. abweichen,
müssen diese natürlich bei allen folgenden Befehlen entsprechend
angepaßt werden.
Folgende Daten gelten für den Zugang zum CVS-Server von FreeXP:
- Der "Repository Host" ist cvs.freexp.de
- Der Pfad zum Repository lautet /home/server/cvs
- Der Name des CVS-Projekts lautet freexp
- Username und Paßwort des öffentlichen Gastzugangs lauten
jeweils ebenfalls freexp (Entwickler müssen hier ihren
eigenen Usernamen und ihr Paßwort verwenden)
Die Schritte zum Bezug der Quelltexte und Erläuterungen zu einigen
CVS-Befehlen im einzelnen:
(Alle aufgeführten Befehle sind Kommandozeilenbefehle und werden am
Prompt einer DOS-Box von Windows 9x/Me bzw. der NTVDM-Konsole von
Windows NT/2000/XP eingegeben.)
- Aktuelle CVS-Version (derzeit v1.11.5)
downloaden,
ins Verzeichnis C:\CVS entpacken, und die im Archiv enthaltene
EXE-Datei (z.B. cvs-1.11.5.exe) in CVS.EXE umbenennen.
Ggf. Verzeichnis C:\CVS in den Pfad aufnehmen (und danach
Rechner neu starten).
- Home-Verzeichnis für CVS mit folgendem Befehl setzen:
set HOME=C:\CVS
Dieser Befehl muß einmalig vor jeder ersten CVS-Session
ausgeführt werden (alternativ kann das Verzeichnis auch schon beim
Systemstart gesetzt werden).
- Vor dem Erstbezug der Quelltexte ein Login ausführen und das
Paßwort angeben. Dazu zunächst folgenden Befehl
ausführen:
set CVSROOT=:pserver:freexp@cvs.freexp.de:/home/server/cvs
freexp ist dabei der Username (Entwickler mit Schreibzugriff
müssen hier ihren eigenen Usernamen einsetzen). Die
Umgebungsvariable %CVSROOT% setzen wir hier aus Gründen der
Übersichtlichkeit; man könnte Login-Methode, Username,
Repository Host und den Pfad zum Repository auch bei jedem der
nachfolgenden CVS-Befehle einzeln mit der globalen CVS-Option -d
angeben, aber eben das wollen wir uns ersparen. Nun erfolgt das Login
mit:
cvs login
Danach erscheint:
Logging in to :pserver:freexp@cvs.freexp.de:2401/home/server/cvs
CVS password:
Paßwort freexp eingeben (Entwickler verwenden hier
ihr eigenes Paßwort). Es wird dann die Datei .cvspass im
CVS-Verzeichnis erzeugt und das Paßwort darin (verschlüsselt)
abgelegt - kein cvs logout danach
ausführen, sonst wird das Paßwort aus der Datei entfernt und
man muß sich beim nächsten Mal wieder neu einloggen.
Da die Datei .cvspass beim ersten Login i.d.R. noch nicht
existiert, wird nach der Paßworteingabe die möglicherweise
irritierende Warnmeldung ...
CVS.EXE login: warning: failed to open C:\CVS\.cvspass for reading: No such file
or directory
... ausgegeben werden - diese kann ignoriert werden, das Paßwort
wurde trotzdem korrekt in .cvspass abgelegt.
Nach diesem ersten (und einmaligen) Login ist auch bei zukünftigen
CVS-Sessions nie wieder ein Login oder das Setzen der Umgebungsvariable
%CVSROOT% erforderlich; Login-Methode, Username, Host, Pfad
zum Repository, ggf. Branch sowie der Projektname werden nach dem Bezug
der Quelltexte (siehe Schritt 4.) in den CVS-Unterverzeichnissen des
Working Directory abgelegt, das Paßwort bleibt in .cvspass
gespeichert (solange man kein cvs logout ausführt).
- Nun wird das Working Directory angelegt und die aktuellen Quelltexte
vom CVS-Repository dorthin übertragen. Zunächst wechselt man
dazu ins lokale Source-Verzeichnis C:\SRC:
C:
CD \SRC
Dann führt man folgenden Befehl aus:
cvs [-z9] co -d FXP340 freexp
Dabei ist co (Kurzform für checkout) der
eigentliche CVS-Befehl, FXP340 gibt das lokale Unterverzeichnis
an, in dem die Quelltexte letztendlich abgelegt werden (dieser
Verzeichnisname ist natürlich frei wählbar) und freexp
ist der Projektname.
Damit werden die Quelltexte der aktuellen FreeXP-Version v3.40
übertragen und im lokalen Verzeichnis C:\SRC\FXP340
abgelegt.
Der globale Parameter -z9 ist optional und speziell für
Modem-Benutzer von Bedeutung: Damit wird der Kompressionslevel 9
definiert, der die Datenübertragung um ca. 30% beschleunigen
kann (im konkreten Test mit einer 56k-Verbindung dauerte der Bezug der
kompletten Quelltexte der v3.40 RC3 mit Option -z9 dann
8:47 min. - statt 12:46 min. ohne Kompression). Es sind Werte
von -z1 (niedrige Kompression) bis -z9 (hohe
Kompression) möglich.
Wer möchte, kann jetzt z.B. noch die Quelltexte der FreeXP-Version
v3.2x, die sich in einem sog. "Branch" des CVS-Repository
befinden, in einem weiteren Unterverzeichnis FXP320 wie folgt
ablegen:
cvs [-z9] co -d FXP320 -r Branch_3_20_Release freexp
Dabei bezeichnet Branch_3_20_Release hinter der Befehlsoption
-r den Namen des Branches.
Nach Ausführung dieses Befehls lägen die Quelltexte der
FreeXP-Version v3.2x im lokalen Verzeichnis
C:\SRC\FXP320.
- Nachdem die Quelltexte einmal wie oben beschrieben bezogen und im
Working Directory abgelegt wurden, gestalten sich alle zukünftigen
CVS-Sessions erheblich einfacher:
- TCP/IP-Verbindung aufbauen
- Ins jeweilige Source-Verzeichnis (z.B. C:\SRC\FXP340)
wechseln
- Gewünschte CVS-Befehle ausführen
(Angabe von Login-Methode, Username, Repository Host, Pfad zum
Repository, Branch und Projektname sowie Setzen der
Umgebungsvariable %CVSROOT% dabei nicht mehr
erforderlich!)
Der wichtigste und für die Allgemeinheit interessanteste CVS-Befehl
ist dabei:
cvs up
up ist die Kurzform für update und bringt das
lokale Working Directory auf den Stand des Repository. Selbst wenn man
in lokalen Quelltext-Dateien mittlerweile eigene Änderungen
vorgenommen haben sollte, werden Änderungen, die andere Entwickler
in denselben Dateien vorgenommen und "eingecheckt" haben,
automatisch synchronisiert oder "gemerged" (sofern diese nicht
zufällig exakt dieselbe Stelle im Source betreffen, dann gibt es
natürlich Merge-Konflikte, die manuell aufgelöst werden
müssen).
Da permanent Änderungen an den Quelltexten stattfinden (oft mehrmals
täglich), bietet ein regelmäßig ausgeführtes
cvs up die Möglichkeit, die Entwicklung Schritt
für Schritt und quasi in Echtzeit mitzuverfolgen.
Hin und wieder kommt es vor, daß nach dem Erstbezug der Quelltexte
neue Unterverzeichnisse im CVS-Repository angelegt wurden. Will man
sicherstellen, daß bei einem Update auch diese Unterverzeichnisse
samt der darin enthaltenen Dateien automatisch berücksichtigt und im
Working Directory abgelegt werden, verwendet man die Befehlsoption
-d:
cvs up -d
Als letzter und nur für Entwickler relevante CVS-Befehl sei an
dieser Stelle noch ...
cvs ci [file.ext]
... erwähnt, mit dem Änderungen in das Repository
"eingecheckt" oder "committet" werden (ci
ist der Kurzbefehl für commit; die Angabe eines Dateinamens
file.ext ist optional).
ACHTUNG: Ein cvs up vor jedem
cvs ci ist absolute Pflicht (sonst werden u.U.
Änderungen anderer Entwickler überschrieben)!!
Sobald eine Änderung eingecheckt ist, ist sie sofort überall
verfügbar, d.h. sie schlägt bei jedem danach ausgeführten
cvs up unmittelbar auf das jeweilige lokale Working
Directory jedes beliebigen anderen Systems durch.
- Zum Abschluß noch der Hinweis auf die Möglichkeit, auch
gezielt auf einen bestimmten Revisionsstand zugreifen zu können.
Dies kann auf unterschiedliche Art und Weise geschehen; eine
Möglichkeit sind sog. "symbolic tags". Z.B. wurde für
den ersten FreeXP-Snapshot der v3.40 RC3 vom 31.08.2003 der Tag
"Snapshot_31082003" gesetzt, so daß man mit ...
cvs up -r Snapshot_31082003
... im Verzeichnis C:\SRC\FXP340 exakt den Stand dieses
Snapshots erhält, auch wenn man bereits einen aktuelleren auf der
Platte hatte. Bei der Angabe von symbolischen Tags ist zu beachten,
daß die Schreibweise des Tags exakt eingehalten werden muß
("cvs up -r snapshot_31082003"
würde wegen des kleingeschriebenen "s" hier z.B.
nicht funktionieren).
Zurück zum aktuellen Stand kommt man wieder mit:
cvs up -A
Die Befehlsoption -A (in genau dieser Schreibweise!) entfernt
alle revisionsspezifischen Informationen im Working Directory und
synchronisiert dieses wieder mit dem Repository.
Weitere Hinweise und Informationen zur Bedienung von CVS siehe
CVS-Dokumentation.
Alle hier beschriebenen Befehle beziehen sich auf die
Kommandozeilen-Version von CVS. Weitere Informationen zu GUI-Frontends
für CVS folgen evtl. bei Gelegenheit an dieser Stelle.
CVS-Mailingliste/Newsgroup
Bei jeder auf dem CVS erfolgten Änderung erfolgt eine Nachricht in eine
miteinander gespiegelte Mailingliste bzw. Newsgroup. Am Ende des Tages
werden die Änderungen im Detail in einem "daily diff"
zusammengefaßt.
Die CVS-Foren von FreeXP sind gegen Schreibzugriffe von außen gesperrt.
Einzelheiten über den Bezug von Mailingliste oder Newsgroup sind auf der
Kontaktseite ersichtlich.
Web-Interface
Lesezugriff auf das CVS-Repository besteht auch über ein
Web-Interface.
|