Es folgt eine Liste aller Archivverwaltungsdateien:
checkoutlist
Diese Datei enthält eine Liste von Dateien, von denen ausgecheckte
Kopien im Archiv gehalten werden sollten. Jede Zeile enthält einen
Dateinamen und eine Fehlermeldung, die CVS ausgeben soll, falls aus
irgendeinem Grund die Datei nicht im Archiv ausgecheckt werden kann.
DATEINAME FEHLERMELDUNG
Da CVS bereits von sich aus ausgecheckte Kopien der existierenden
Verwaltungsdateien behält, müssen diese nicht in der
checkoutlist-Datei aufgeführt werden. Speziell die folgenden Dateien
brauchen niemals in der checkoutlist-Datei zu stehen: loginfo,
rcsinfo, editinfo, verifymsg, commitinfo, taginfo, ignore,
checkoutlist, cvswrappers, notify, modules, readers, writers und
config.
commitinfo
Spezifiziert Programme, die, in Abhängigkeit von den betroffenen
Dateien, bei einem Commit gestartet werden sollen. Jede Zeile besteht
aus einem regulären Ausdruck, gefolgt von einem Kommando:
REGULÄRER_AUSDRUCK PROGRAMM [ARGUMENTE]
Dem Kommando werden außer den in der Datei vermerkten Argumenten
zusätzliche Parameter übergeben, und zwar der volle Pfad zum Archiv
gefolgt von den Namen aller Dateien, die per Commit übertragen werden
sollen. Diese Dateien können durch das PROGRAMM untersucht werden; ihr
Inhalt entspricht dem der Dateien aus der Arbeitskopie, auf die commit
angewendet werden soll. Beendet sich das PROGRAMM mit einem
Rückgabewert ungleich null, so schlägt commit fehl; anderenfalls wird
der Commit durchgeführt. (Siehe auch Gemeinsame Syntax weiter vorne
in diesem Kapitel.)
config
Kontrolliert diverse globale (nicht projektspezifische)
Archivparameter. Die Syntax jeder Zeile ist:
ParameterName=yes|no
mit Ausnahme des LockDir Parameters, der einen absoluten Pfadnamen als
Argument benötigt.
Die folgenden Parameter werden unterstützt:
RCSBIN (normal: =no)
(Überholt.) Diese Option wird aus Kompatibilitätsgründen
stillschweigend akzeptiert, hat jedoch keinerlei Wirkung mehr.
SystemAuth (normal: =no)
Wenn yes, dann konsultiert die pserver Authentifizierung die
Benutzerdatenbank des Systems - normalerweise /etc/passwd - falls ein
Benutzer nicht in CVSROOT/passwd gefunden werden kann. Wenn no, muss
der Benutzer in CVSROOT/passwd stehen, um Zugriff über die
:pserver:-Methode zu erhalten.
PreservePermissions (normal: =no)
Wenn yes, dann versucht CVS Dateizugriffsrechte und andere spezielle
Dateisysteminformationen (wie Device-Nummern und Ziele symbolischer
Links) möglichst zu erhalten. Dies möchten Sie wahrscheinlich nicht,
weil diese Option sich nicht unbedingt immer verhält wie erwartet.
(Siehe auch den Abschnitt Special Files im Cederqvist mit weiteren
Details.)
TopLevelAdmin (normal: =no)
Wenn yes, dann erzeugen Checkouts ein CVS/-Unterverzeichnis neben
jedem Dateibaum der Arbeitskopie (im Mutterverzeichnis der
Arbeitskopie). Dies kann nützlich sein, wenn Sie viele Arbeitskopien
aus demselben Archiv auschecken; andererseits wird durch eine
Einstellung an dieser Stelle jeder Benutzer des Archivs betroffen.
LockDir (normal: nicht gesetzt)
Das Argument nach dem Gleichheitszeichen ist der Pfad zu einem
Verzeichnis, in dem CVS Lock-Dateien erzeugen kann. Wenn dies nicht
gesetzt ist, werden Lock-Dateien innerhalb des Archivs jeweils bei den
korrespondierenden RCS-Dateie jedes Projektes angelegt. Das bedeutet,
dass Benutzern dieser Projekte auf Dateisystemebene Schreibzugriff auf
diese Archivverzeichnisse gewährt sein muss.
cvsignore
Ignoriert bestimmte Dateien, wenn Aktualisierungen, Imports oder
Releases durchgeführt werden. Normalerweise ignoriert CVS sowieso
einige Arten von Dateien. (Für eine vollständige Liste siehe die -I
Option zu import weiter vorne in diesem Kapitel.) Sie können diese
Liste erweitern, indem Sie zusätzliche Dateinamen oder Wildcards in
der cvsignore-Datei eintragen. Jede Zeile gibt einen Dateinamen oder
ein Muster, z.B.:
README.msdos
*.html
blah?.out
Hierdurch wird CVS veranlasst, alle Dateien mit dem Namen
README.msdos, alle Dateien, die auf .html enden, und alle Dateien,
die mit blah anfangen und mit .out enden, zu ignorieren.
(Theoretisch könnten Sie mehrere Dateien oder Wildcards in jeder Zeile
durch Leerzeichen getrennt angeben, aber die Lesbarkeit ist bei einem
Ausdruck pro Zeile besser. Bedauerlicherweise impliziert diese
Tatsache auch, dass es keinen Weg gibt, Dateinamen, die Leerzeichen
enthalten, zu spezifizieren, außer unter Verwendung von Wildcards.)
Ein ! an beliebiger Stelle innerhalb der Liste macht alle
vorangehenden Einträge unwirksam. (Siehe $CVSIGNORE im bschnitt
Umgebungsvariablen in diesem Kapitel für eine vollständigere
Diskussion des Verhaltens von Ignore.)
cvswrappers
Definiert gewisse Filtermethoden, basierend auf dem Dateinamen. Jede
Zeile enthält einen Dateinamen oder eine Wildcard, gefolgt von einer
Option, die den Filtertyp festlegt, und ein Argument zu dieser Option.
Optionen:
-
-m
-
Spezifiziert eine Aktualisierungsmethode. Mögliche Argumente sind
MERGE, was eine automatische Integration in die Arbeitskopie bewirkt,
sowie COPY, was bewirkt, dass keine Integration versucht wird, sondern
der Benutzer mit beiden Versionen einer Datei konfrontiert wird und
das selber regeln muss. Standardeinstellung ist MERGE, außer bei
Binärdateien (solche, deren Schlüsselwortersetzungs-Methode auf -kb
gesetzt ist). (Siehe auch den Abschnitt Schüsselwortersetzung weiter
vorne in diesem Kapitel.) Dateien, die als binär markiert sind, nutzen
automatisch die COPY Methode, sodass kein Grund besteht, für diese
extra einen -m COPY-Wrapper zu definieren.
-
-k
-
Legt eine Schlüsselwortersetzungs-Methode fest. Alle üblichen Methoden
sind erlaubt. (Siehe auch den Abschnitt Schüsselwortersetzung weiter
vorne in diesem Kapitel mit einer vollständigen Liste.)
Hier ist ein Beispiel für eine cvswrappers-Datei:
*.blob -m COPY
*.blink -k o
Diese cvswrappers-Datei legt fest, dass für Dateien, die auf .blob
enden, keine automatische Integration versucht werden soll und für
Dateien, die auf .blink enden, die Schlüsselwortersetzung
unterdrückt wird. (Siehe auch .cvswrappers im Abschnitt Dateien in
der Arbeitskopie in diesem Kapitel.)
editinfo
Diese Datei ist überholt. Sehr überholt.
history
Speichert eine ständig anwachsende Historie von Aktivitäten im Archiv,
zur Benutzung durch das cvs history-Kommando. Um diese Funktion zu
deaktivieren, löschen Sie einfach die history-Datei. Wenn sie
existiert, sollte sie am besten für alle beschreibbar sein, um spätere
Probleme mit Dateizugriffsrechten zu vermeiden.
Der Inhalt dieser Datei ändert in keiner Weise das Verhalten von CVS
(selbstverständlich mit Ausnahme der Ausgabe des Befehles cvs
history).
loginfo
Spezifiziert Programme, welche die Log-Mitteilungen bei jedem Commit
bearbeiten, abhängig davon, was von dem Commit betroffen ist. Jede
Zeile setzt sich aus einem regulären Ausdruck, gefolgt von einem
Befehlsausdruck, zusammen:
REGULÄRER_AUSDRUCK PROGRAMM [ARGUMENTE]
Dem PROGRAMM wird die Log-Mitteilung auf die Standardeingabe übermittelt.
Einige spezielle Codes können in ARGUMENTE verwendet werden: %s
symbolisiert die Namen der Dateien, die der Commit betrifft, %V steht
für die alten Revisionen vor dem Commit und %v für die neuen
Revisionen nach dem Commit. Wenn mehrere Dateien betroffen sind, ist
jedes Element der Ersetzung durch Leerzeichen vom nächsten getrennt.
Beispielsweise wird bei einem Commit, der zwei Dateien betrifft, %s zu
hallo.c README.txt und %v zu 1.17 1.12.
Sie können die Codes in geschweiften Klammern kombinieren, wodurch
jeder zu einem Namen gehörige Block intern durch Kommata, die Blöcke
an sich durch Leerzeichen getrennt werden. Um das vorige Beispiel
weiterzuführen, sähe beispielsweise die Expansion von %{sv} so aus:
hallo.c,1.17 README.txt,1.12.
Wenn überhaupt irgendeine % Expansion durchgeführt wird, dann wird der
Pfad im Archiv vorangestellt. Das heißt, das letzte Beispiel ergäbe in
Wirklichkeit:
myproj hallo.c,1.17 README.txt,1.12
Wenn PROGRAMM mit einem Rückgabewert ungleich null beendet wird, so
schlägt commit fehl; anderenfalls wird die Aktion fortgeführt. (Siehe
auch den Abschnitt gemeinsame Syntax weiter vorn in diesem Kapitel.)
modules
Diese Datei bildet Namen auf Archivverzeichnisse ab. Der generelle
Aufbau der Dateizeilen ist:
MODUL [OPTIONEN] [&ANDERES_MODUL...] [VERZEICHNIS] [DATEIEN]
VERZEICHNIS muss kein Top-Level-Projektverzeichnis sein - es kann
genauso gut ein Unterverzeichnis sein. Werden irgendwelche DATEIEN
angegeben, so besteht das Modul nur aus diesen DATEIEN in diesem
VERZEICHNIS.
Ein Und-Zeichen, gefolgt von einem Modulnamen, bewirkt, dass die
Expansion jenes Moduls auf dieser Zeile übernommen wird.
Optionen:
-
-a
-
Dies ist ein Modul-Alias, was heißt, es expandiert buchstäblich zu
allem, was nach den OPTIONEN folgt. In diesem Falle ist das
VERZEICHNIS/DATEIEN-Verhalten deaktiviert, und alles nach den OPTIONEN
wird als andere Module oder Archivverzeichnisse angesehen. Wenn Sie
die -a-Option verwenden, können Sie bestimmte Verzeichnisse von
anderen Modulen ausnehmen, indem Sie ihnen ein Ausrufezeichen (!)
voranstellen. Zum Beispiel bedeutet
user@linux ~$
top_proj -a !meinproj/a-verzeichnis !meinproj/b-verzeichnis meinproj
|
-
-
dass ein Checkout von top_proj alle Dateien in meinproj betrifft,
außer denen in den Verzeichnissen a-verzeichnis und b-verzeichnis.
-
-d NAME
-
Nennt das Arbeitsverzeichnis NAME, anstatt den Modulnamen zu verwenden.
-
-e PROGRAMM
-
Startet PROGRAMM, wenn Dateien in diesem Modul exportiert werden.
-
-i PROGRAMM
-
Startet PROGRAMM, wenn Commits von Dateien in diesem Modul
stattfinden. Dem Programm wird ein Argument übergeben - der
vollständige Pfad zu der fraglichen Datei innerhalb des Archivs.
(Siehe auch commitinfo, loginfo und verifymsg für
ausgeklügeltere Methoden zum Starten von Programmen bei einem Commit.)
-
-o PROGRAMM
-
Startet PROGRAMM, wenn Dateien in diesem Modul ausgecheckt werden.
-
-s STATUS
-
Legt einen Status für dieses Modul fest. Wenn die modules-Datei
ausgegeben wird (mit cvs checkout -s), dann werden die Module zunächst
nach Status, dann nach Namen sortiert. Diese Option hat keine weitere
Wirkung auf CVS, also nutzen Sie sie nach Belieben. Sie können Sie
benutzen, um nach beliebigen Kriterien zu sortieren: beispielsweise
Status, Verantwortliche für den Quelltext oder Sprache der Datei.
-
-t PROGRAMM
-
Startet PROGRAMM, wenn Dateien in diesem Modul mittels cvs rtag
markiert werden. Dem Programm werden zwei Argumente mitgegeben: der
Name des Moduls und der symbolische Name der Markierung. Das Programm
wird nur für rtag aufgerufen, nicht für tag. Ich habe keine Ahnung,
warum diese Unterscheidung gemacht wird. Die taginfo -Datei könnte
nützlicher für Sie sein, wenn Sie Programme durch tag starten möchten.
-
-u PROGRAMM
-
Startet PROGRAMM, immer wenn eine Arbeitskopie dieses Moduls aus
seinem Hauptverzeichnis heraus aktualisiert wird. Dem Programm wird
ein einzelnes Argument übergeben: Der vollständige Dateiname zum
Archiv des Moduls.
notify
Kontrolliert, wie die Benachrichtigungen für beobachtete Dateien
durchgeführt werden. (Möglicherweise möchten Sie hierzu auch bei den
watch- und edit-Kommandos nachlesen oder den Abschnitt Watches in
Kapitel 6 anschauen.) Jede Zeile hat die übliche Form:
REGULÄRER_AUSDRUCK PROGRAMM [ARGUMENTE]
Ein %s innerhalb der ARGUMENTE wird zu dem Namen des Benutzers
expandiert, der benachrichtigt werden soll, während der Rest der
Information bezüglich der Benachrichtigung dem PROGRAMM auf der
Standardeingabe übergeben wird. Üblicherweise ist diese Information
eine kurze Nachricht, die dazu geeignet ist, eine E-Mail an den
Benutzer zu erzeugen. (Siehe auch den Abschnitt gemeinsame Syntax
weiter vorne in diesem Kapitel.)
In der Standardkonfiguration von CVS hat die notify-Datei eine Zeile:
ALL mail %s -s "CVS notification"
die meistens auch vollständig ausreicht.
passwd
Enthält Authentisierungsdaten zur Nutzung mit der
pserver-Zugriffsmethode. Jede Zeile hat die Form:
BENUTZER:VERSCHLÜSSELTES_PASSWORT[:SYSTEM_BENUTZER]
Ist kein SYSTEM_BENUTZER gegeben, wird BENUTZER als der
Systembenutzername angenommen.
rcsinfo
Definiert ein Formular, das für Log-Mitteilungen ausgefüllt werden
sollte, die mit einem interaktiven Editor erstellt werden. Jede Zeile
von rcsinfo sieht wie folgt aus:
REGULÄRER_AUSDRUCK DATEI_MIT_FORMULARVORLAGE
Die Vorlage wird an extern gelagerte Arbeitskopien übergeben, wenn
diese einen Checkout durchführen, sodass eventuelle Änderungen an der
Vorlage zunächst ohne Wirkung bleiben, da die externen Kopien die alte
Version weiterverwenden. (Siehe auch den Abschnitt gemeinsame Syntax
in diesem Kapitel.)
taginfo
Startet ein Programm beim Setzen von Markierungen. (Üblicherweise um
zu überprüfen, dass die Markierungen einem bestimmten Schema folgen).
Jede Zeile hat die Form:
REGULÄRER_AUSDRUCK PROGRAMM
Dem Programm wird ein Satz von Argumenten übergeben. In dieser
Reihenfolge sind das der symbolische Name der Markierung, die
Operation (siehe unten), das Archiv und so viele Paare aus
Dateiname/Revision, wie Dateien von der Aktion betroffen sind. Die
Datei/Revision-Paare sind durch Leerzeichen getrennt, wie der Rest der
Argumente.
Die Operation ist entweder add, mov oder del. (mov bedeutet, dass die
-F-Option des tag-Befehls verwendet wurde.)
Wenn PROGRAMM mit einem Rückgabewert ungleich null beendet wird, so schlägt der
tag-Befehl fehl;
andernfalls wird er fortgeführt. (Siehe auch den Abschnitt gemeinsame Syntax
weiter vorn in diesem Kapitel.)
users
Verknüpft Benutzernamen mit E-Mail-Adressen. Jede Zeile sieht aus wie:
BENUTZERNAME:EMAIL_ADRESSE
Hiermit können Benachrichtigungen über beobachtete Dateien an EMAIL_
ADRESSE anstatt an den BENUTZERNAMEN auf der Maschine mit dem Archiv
versendet werden. (Alles, was hier gemacht wird, ist die Kontrolle der
Expansion von %s in der notify-Datei.) Sollte die EMAIL_ADRESSE
Leerzeichen enthalten, dann stellen Sie sicher, dass sie in
Anführungszeichen steht.
Wenn Benutzer-Aliasing in der passwd-Datei verwendet wird, dann ist
der Benutzername, der hier verglichen wird, der CVS-Benutzername (der
auf der linken Seite), nicht der Systembenutzername (rechts, falls
vorhanden).
val-tags
Diese Datei dient als Zwischenspeicher für gültige Markierungen, um
deren Auffindung zu beschleunigen. Es sollte nie notwendig sein, dass
Sie diese Datei bearbeiten müssen, aber es könnte notwendig sein, die
Zugriffs- oder Eigentumsrechte zu ändern, wenn Leute Probleme beim
Zugriff auf oder bei der Erzeugung von Markierungen haben.
verifymsg
Wird in Verbindung mit rcsinfo verwendet, um das Format von
Log-Mitteilungen zu verifizieren. Jede Zeile hat die Form:
REGULÄRER_AUSDRUCK PROGRAMM [ARGUMENTE]
Der vollständige Pfad zur aktuellen Vorlage für Log-Mitteilungen
(siehe auch rcsinfo weiter vorne in diesem Kapitel) wird hinter dem
letzten, in der verifymsg-Datei angegebenen Argument angefügt. Wenn
PROGRAMM mit einem Rückgabewert ungleich null beendet wird, so schlägt
commit fehl; andernfalls wird die Aktion fortgeführt. (Siehe auch den
Abschnitt gemeinsame Syntax weiter vorn in diesem Kapitel.)
|