SelfLinux Programmierung CVS CVS-Referenz Abschnitt 2 | SelfLinux-0.13.0

| CVS-Referenz | Autor Formatierung GPL

#### 4 Globale Optionen

Hier folgt eine Liste aller globalen Optionen für CVS

#### 4.1 --allow-root=ARCHIV

Die alphabetisch erste globale Option, die praktisch nie auf der Kommandozeile verwendet wird. Sie wird mit dem pserver-Kommando zum Aufbau eines authentifizierten Zugriffes zu dem angegebenen Archiv verwendet. Dabei handelt es sich um das Hauptverzeichnis eines Archivs, (wie /usr/local/cvsarchiv/), nicht um ein Unterverzeichnis (wie /usr/local/cvsarchiv/projekt). Normalerweise ist die einzige Stelle, an der diese Option überhaupt vorkommt in der Datei /etc/inetd.conf (siehe Kapitel 4), genau wie das mit ihr verwendete pserver Kommando. Jedes Archiv, auf das mit cvs pserver auf einem bestimmten Rechner zugegriffen wird, benötigt eine entsprechende --allow-root-Option in /etc/inetd.conf. Dies ist eine Sicherheitsmaßnahme, die gewährleisten soll, dass niemand mittels eines cvs pserver-Kommandos Zugriff auf private Archive erlangen kann. (Siehe auch den Abschnitt Password Authentication Server im Cederqvist.)

#### 4.2 -a

Authentifiziert jede Kommunikation mit dem Server. Diese Option hat keinen Effekt, solange Sie nicht mittels GSSAPI-Server (gserver) Verbindungen aufbauen. GSSAPI-Verbindungen sind in diesem Buch nicht behandelt, weil sie noch immer relativ selten anzutreffen sind (auch wenn sich das ändern könnte). Siehe auch die Abschnitte Global Options und GSSAPI Authenticated im Cederqvist für mehr Information zu diesem Thema.

#### 4.3 -b (Überholt)

Diese Option wurde früher dazu verwendet anzugeben, in welchem Verzeichnis sich die RCS-Programmdateien befanden. CVS implementiert inzwischen jedoch intern die RCS-Funktionen, sodass diese Option nur noch aus Gründen der Kompatibilität beibehalten wird. Sie hat keinerlei Wirkung mehr.

#### 4.4 -d ARCHIV

Diese Option gibt das Archiv an. ARCHIV kann entweder einfach ein absoluter Pfad oder ein komplexerer Ausdruck sein, der eine Verbindungsmethode, einen Benutzer- und Rechnernamen sowie einen Pfad enthält. In letzterem Fall sieht die generelle Ausdrucksform so aus:

:METHODE:BENUTZER@RECHNER:PFAD_ZUM_ARCHIV

Hier ein paar Beispiele zu den üblichen Verbindungsarten:

:ext:jrandom@floss.red-bean.com:/usr/local/archiv
- Baut eine Verbindung unter Verwendung von rsh, ssh oder eines anderen externen Programmes auf. Falls die CVS_RSH-Umgebungsvariable nicht gesetzt ist, ist die Standardeinstellung rsh, ansonsten wird der Wert dieser Variablen verwendet.

:server:jrandom@floss.red-bean.com:/usr/local/archiv
- Wie :ext:, nutzt aber die interne rsh-Variante von CVS. (Diese Option ist möglicherweise nicht auf allen Plattformen verfügbar.)

:pserver:jrandom@floss.red-bean.com:/usr/local/archiv
- Baut mit Hilfe des Passwortauthentifizierungs-Servers eine Verbindung auf (siehe Der Passwortauthentifizierungs-Server in Kapitel 4; siehe auch das login-Kommando).

:kserver:jrandom@floss.red-bean.com:/usr/local/archiv
- Baut eine Verbindung mit Hilfe der Kerberos-Authentifizierung auf.

:gserver:jrandom@floss.red-bean.com:/usr/local/archiv
- Baut eine Verbindung unter Verwendung der GSSAPI-Authentifizierung auf.

:fork:jrandom@floss.red-bean.com:/usr/local/archiv
- Baut eine Verbindung zu einem lokalen Archiv auf, benutzt aber das Client/Server-Protokoll, anstatt direkt auf die Dateien zuzugreifen. Dies kann nützlich sein, um das Verhalten einer CVS-Konfiguration im Netz auf dem eigenen Rechner zu testen und Fehler zu suchen.

:local:jrandom@floss.red-bean.com:/usr/local/newrepos
- Greift direkt auf ein lokales Archiv zu, so als wäre nur der absolute Pfad angegeben worden.

#### 4.5 -e EDITOR

Startet EDITOR für Ihre commit-Mitteilung, falls diese nicht auf der Kommandozeile mit der -m-Option angegeben wurde. Normalerweise startet CVS den Editor abhängig vom Inhalt der Umgebungsvariablen CVSEDITOR, VISUAL oder EDITOR (in dieser Reihenfolge), falls keine Mitteilung mit -m angegeben wird. Falls alles schief geht, versucht CVS, den verbreiteten Unix-Editor vi zu starten. Wenn Sie sowohl -e also auch -m mit commit verwenden, wird das -e zu Gunsten der bei -m angegebenen Mitteilung ignoriert. (Daher ist es unproblematisch, -e in einer .cvsrc-Datei zu verwenden.)

#### 4.6 -f

Diese globale Option unterbindet das Lesen der .cvsrc-Datei.

#### 4.7 --help [KOMMANDO]

#### 4.8 -H [KOMMANDO]

Diese beiden Optionen bewirken dasselbe. Sollte kein KOMMANDO angegeben sein, dann wird in einer kurzen Ausgabe die Bedienung der Grundfunktionen erläutert.

#### 4.9 --help-options

Gibt eine Liste aller verfügbaren Optionen für CVS samt kurzer Erklärung aus.

#### 4.10 --help-synonyms

Gibt eine Liste aller CVS-Kommandos und ihrer Kurzformen (up für update usw.) aus.

#### 4.11 -l

Unterdrückt das Mitschneiden dieses Kommandos in die CVSROOT/history-Datei im Archiv. Das Kommando wird zwar ausgeführt, aber es wird kein Eintrag in der History-Datei erzeugt.

#### 4.12 -n

Ändert keine Datei in der Arbeitskopie oder im Archiv. Mit anderen Worten, diese Option führt zu einer Art Testlauf, in dem CVS zwar fast alle Kommandos abarbeitet, aber nichts wirklich verändert. Das kann nützlich sein, wenn Sie sehen wollen, was ein Kommando bewirkte, wenn Sie es tatsächlich anwenden würden. Ein übliches Szenario ist, wenn Sie sehen möchten, welche Dateien in Ihrem Arbeitsverzeichnis inzwischen verändert wurden, diese aber noch nicht aktualisieren möchten (was die Veränderungen aus dem Archiv in Ihre Dateien übertragen würde). Durch die Ausführung des Kommandos cvs -n update können Sie so eine Zusammenfassung der Veränderungen angezeigt bekommen, ohne Ihre Arbeitskopie der Daten anzutasten.

#### 4.13 -q

Diese Option befiehlt CVS, etwas leiser zu arbeiten und unnötige Informationen nicht auszugeben. Was als notwendig angesehen wird, hängt hierbei von dem Kommando ab. Zum Beispiel werden bei der Aktualisierung die Nachrichten unterdrückt, die CVS normalerweise ausgibt, wenn es in ein neues Unterverzeichnis der Arbeitskopie eintritt - die einzeiligen Statusmeldungen über veränderte oder aktualisierte Dateien werden jedoch trotzdem angezeigt.

#### 4.14 -Q

Wie -q, nur dass CVS hier lediglich die allernötigsten Informationen ausgibt. Kommandos, deren einziger Zweck es ist, Ausgaben zu erzeugen (wie z.B. diff und annotate), werden davon natürlich nicht beeinflusst. Hingegen geben Befehle, die unabhängig von irgendwelchen Ausgaben ihre Aufgabe erfüllen können (wie z.B. update und commit), nichts aus.

#### 4.15 -r

Bewirkt, dass neue Arbeitsdateien ohne Schreibzugriff erzeugt werden (hat also dieselbe Wirkung wie die CVSREAD-Umgebungsvariable). Wenn Sie diese Option verwenden, werden bei Dateneinspielungen und -aktualisierungen die Dateien in Ihrer Arbeitskopie als nur lesbar markiert (sofern Ihr Betriebssystem diese Option unterstützt). Genau genommen habe ich keine Ahnung, warum je jemand diese Option verwenden sollte.

#### 4.16 -s VARIABLE=WERT

Hiermit wird die interne CVS-Variable namens VARIABLE auf den Wert WERT gesetzt. Auf der Seite des Archivs können die CVSROOT/*info-Kontrolldateien solche Variablen in Werte übersetzen, die mit der -s-Option gesetzt wurden. Wenn zum Beispiel die Datei CVSROOT/loginfo eine Zeile wie diese enthält

myproj /usr/local/bin/foo.pl ${=FISCH}

und dann jemand ein commit von myproj wie folgt startet

user@linux ~$ cvs -s FISCH=Karpfen commit -m "Köder-Bug behoben"

dann wird das Skript foo.pl mit Karpfen als Argument gestartet. Man beachte jedoch die schräge Syntax: Das Dollarzeichen, die geschweifte Klammer und das Gleichheitszeichen - fehlt eines der drei, dann funktioniert die Zuweisung nicht korrekt. Variablennamen dürfen lediglich Buchstaben, Zahlen und Unterstriche enthalten. Obwohl es nicht unbedingt erforderlich ist, dass alle Buchstaben groß geschrieben werden, scheinen sich doch die meisten Leute an diese Konvention zu halten. Das -s-Flag kann in einem Kommando beliebig oft hintereinander verwendet werden. Falls sich jedoch eines der Kontrollskripten auf Variablen bezieht, die nicht beim Aufruf gesetzt wurden, dann wird zwar das Skript ausgeführt, aber eine Warnung an den Benutzer ausgegeben und keiner einzigen Variablen ihr Wert zugewiesen. Wenn zum Beispiel in loginfo Folgendes steht

myproj /usr/local/bin/foo.pl ${=FISCH} ${=VOGEL}

aber derselbe Befehl wie vorhin ausgeführt wird

user@linux ~$ cvs -s FISCH=Karpfen commit -m "Köder-Bug behoben"

dann bekommt der Benutzer, der den Befehl gestartet hat, eine Warnung wie

loginfo:31: no such user variable ${=BIRD}

und das Skript foo.pl wird ohne Argumente ausgeführt. Wenn das Kommando jedoch so aussieht:

user@linux ~$ cvs -s FISCH=Karpfen -s VOGEL=Geier commit -m "Köder-Bug behoben"

dann wird keine Warnung ausgegeben, und foo.pl wird wie erwartet mit den Argumenten Karpfen und Geier aufgerufen. In beiden Fällen würde der Commit selbst korrekt durchgeführt.

Bemerkung

> Obwohl all diese Beispiele commit verwenden, kann die Zuweisung von Variablen mit jedem CVS-Kommando geschehen, das eine CVSROOT/ Kontrolldatei auslöst - darum ist -s eine globale Option.

> (Siehe auch den Abschnitt Archivverwaltungsdateien weiter hinten in diesem Kapitel zur Expansion von Variablen in Kontrolldateien.)

#### 4.17 -T DIR

Speichert alle temporären Dateien in DIR anstatt da, wo CVS sie normalerweise ablegt. (Dies überschreibt im Besonderen den Wert der Umgebungsvariablen TMPDIR, falls sie existiert.) DIR sollte ein absoluter Pfad sein. Diese Option ist nützlich, falls Sie als Benutzer keinen Schreibzugriff auf die üblichen temporären Verzeichnisse besitzen.

#### 4.18 -t

Verfolgt die Durchführung eines CVS-Kommandos. Dies veranlasst CVS genau alle Schritte anzuzeigen, die es durchführt, um einen Befehl auszuführen. Das kann sich besonders im Zusammenhang mit der Option -n als nützlich erweisen, damit Sie sich so im Detail die Effekte eines ungewöhnlichen Befehles im Voraus ansehen können, ohne ihn wirklich auszuführen. Die Option ist ebenfalls praktisch, um herauszufinden, warum ein Kommando nicht funktioniert.

#### 4.19 -v --version

Veranlasst CVS, seine vollständige Version und Urheberrechtsangaben auszugeben.

#### 4.20 -w

Bewirkt, dass neue Arbeitsdateien mit Schreibzugriff ausgestattet werden (überschreibt damit jeden Wert, den eventuell die Umgebungsvariable CVSREAD haben könnte). Weil normalerweise sowieso alle Dateien mit Schreibzugriff versehen werden, wird diese Option nur selten benutzt.

Werden beide Optionen, -r und -w, angegeben, so gilt die -w-Option.

#### 4.21 -x

Verschlüsselt jede Kommunikation mit dem Server. Diese Option hat keine Wirkung, solange nicht eine Verbindung via GSSAPI zum Server (gserver) besteht. GSSAPI-Verbindungen werden in diesem Buch nicht behandelt, weil sie immer noch eher selten benutzt werden - obwohl sich das ändern könnte). (Siehe auch die Abschnitte Global Options und GSSAPI Authenticated im Cederqvist mit mehr Informationen zu dieser Thematik.)

#### 4.22 -z GZIPLEVEL

Stellt die Stärke der Datenkompression für die Verbindungen zum Server ein. Das Argument GZIPLEVEL muss eine Zahl zwischen eins und neun sein. Eins steht für minimale Kompression (dafür schnell); neun hingegen hat nur auf sehr schnellen Rechnern oder sehr langsamen Verbindungen Sinn (komprimiert sehr stark, braucht aber viel Rechenzeit). Die meisten Benutzer dürften Werte zwischen drei und fünf praktikabel finden. Das Leerzeichen zwischen -z und seinem Argument ist optional.