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

| CVS-Referenz | Autor Formatierung GPL

#### 6 Schlüsselwortersetzung (RCS-Schlüsselwörter)

CVS kann bestimmte textuelle Ersetzungen in Dateien durchführen, die es Ihnen erlauben, einige Arten von Informationen automatisch innerhalb Ihrer Dateien auf dem aktuellsten Stand zu halten. Alle diese Ersetzungen werden durch ein spezielles Schlüsselwortmuster ausgelöst, das von Dollarzeichen eingeschlossen wird. Zum Beispiel wird

$Revision$

in einer Datei zu einem Ausdruck wie

$Revision: 1.5 $

und CVS wird bei jedem Commit einer neuen Revision diese Textstelle auf dem neuesten Stand halten.

#### 6.1 Schlüsselwort-Expansion kontrollieren

Normalerweise expandiert CVS Schlüsselwörter, solange Sie ihm nicht befehlen, das nicht zu tun. Sie können die Schlüsselwortersetzung für eine Datei permanent verhindern, indem Sie die -k-Option angeben, wenn Sie die Datei dem Projekt hinzufügen, oder Sie können sie später deaktivieren, indem Sie den Befehl admin mit der Option -k aufrufen. Die -k-Option bietet mehrere verschiedene Methoden der Schlüsselwortkontrolle; üblicherweise werden Sie o oder b benötigen, wie zum Beispiel:

user@linux ~$ cvs add -ko neue_datei.txt

Dieser Befehl fügte die Datei neue_datei.txt dem Projekt hinzu, wobei die Schlüsselwortersetzung abgeschaltet ist. Es setzt die Schlüsselwortersetzungs-Methode der Datei auf o fest, was so viel wie keine Ersetzung bedeutet. (Genau genommen steht das o für old3, was bedeutet, dass das Wort mit seinem alten Wert - also durch sich selbst - ersetzt wird, was effektiv in keiner Änderung resultiert. Ich bin sicher, diese Logik ergab zum damaligen Zeitpunkt für irgendjemanden einen Sinn.)

Die Schlüsselwortersetzungs-Methode für jede einzelne Datei wird im Archiv gespeichert. Doch kann zudem jede Arbeitskopie ebenfalls ihre eigene lokale Einstellung besitzen - bewirkt durch die -k-Optionen zu checkout und update. Man kann außerdem Ersetzungsmethoden mit der -k-Option zu diff lediglich für die Dauer eines einzigen Befehls zur Anwendung bringen.

Hier sind alle möglichen Methoden, angegeben mit vorne angefügter -k-Option (so, wie man sie auf der Kommandozeile schreiben würde). Jede dieser Optionen kann sowohl als standardmäßige als auch als lokale Schlüsselwortersetzungs-Methode für eine Datei verwendet werden:

- -kkv
  - Schlüsselwort und Wert; dies ist die normale Schlüsselwortexpansions-Methode, daher muss sie nicht explizit für neue Dateien mit angegeben werden. Sie könnten sie jedoch benötigen, um eine Datei mit einer anderen Methode zurückzusetzen.

- -kkvl
  - Wie -kkv, beinhaltet aber zusätzlich den Namen desjenigen, der die Revision gebunden hat, falls diese auf einem bestimmten Wert gehalten wird. (Siehe die -l-Option zum Befehl admin für mehr Informationen dazu.)

- -kk
  - Schreibt keine Werte in Schlüsselwortfelder, sondern benutzt lediglich den Namen des Schlüsselwortes. Mit dieser Option würden zum Beispiel:

> $Revision: 1.5 $

und

> $Revision$

beide expandiert (okay, eher kontrahiert) zu:

> $Revision$

- -ko
  - Wiederverwendung des Wortes, das in der Datei gefunden wird (o für old, wie oben beschrieben), gerade so, wie es vor dem commit in der Arbeitskopie stand.

- -kb
  - Wie -ko, zusätzlich wird aber noch die sonst zwischen unterschiedlichen Plattformen übliche automatische Umwandlung von Zeilenendungen unterdrückt. Das b steht für binär; es ist die Methode, die für Binärdateien verwendet werden sollte.

- -kv
  - Ersetzt das Schlüsselwort durch seinen Wert, so wird zum Beispiel

> $Revision$

umgewandelt zu:

> 1.5

Natürlich wird in diesem Fall nach der ersten keine weitere Ersetzung stattfinden, sodass diese Methode mit Bedacht verwendet werden sollte.