CVS und binäre Dateien

bash
CVS speichert bei einem Commit nur die Differenzen zur Vorgängerversion. Dies macht bei binären Dateien (nib-Dateien, Bildern, PDF's, usw.) keinen Sinn bzw. zerstört diese unter Umständen (new lines). Deshalb werden solche Dateien wie folgt hinzugefügt "cvs add -kb bild.png". Damit man dies nicht für jede Datei machen muss und es auch nicht vergisst, verwendet CVS eine Datei Namens ".cvswrappers". Hier kann unter anderem für bestimmte Dateiendungen festgelegt werden, dass diese als binäre Dateien behandelt werden sollen.

Ich habe meine wieder in meinem Home-Verzeichnis abgelegt und sie hat momentan folgenden Inhalt:

*.nib -k 'b'
*.tiff -k 'b'
*.gif -k 'b'
*.png -k 'b'
*.pdf -k 'b'

CVS und ".DS_Store"-Dateien

bash
Wer wie ich mit dem Finder arbeitet, wird sich sicherlich schon über die ".DS_Store"-Dateien in seinen Projekt-Verzeichnissen geärgert haben. Die möchte man natürlich nicht in das Repository mit aufnehmen. CVS verwendet in diesem Zusammenhang eine Datei Namens ".cvsignore". Das CVS-Tool liest diese Dateien und ignoriert alle Dateien die darin zeilenweise aufgeführt sind. Diese kann man in spezialisierten Versionen in den einzelnen Verzeichnissen anlegen und committen. Für Dateien die in allen Verzeichnissen und allen Repositories ignoriert werden sollen, kann man sie auch im Home-Verzeichnis anlegen.

Meine "~/.cvsignore" sieht momentan noch so aus:

# ignore the build directories
build
# ignore the .DS_Store files
.DS_Store
# ignore the IB temp files
*~.*

CVS mit Xcode 3.0

icon_xcode
In dem Artikel von heute Morgen "SSH und CVS im Terminal" habe ich schon einmal die Grundlagen geschaffen, damit ich von meinem Mac auf ein CVS-Repository (welches auf einem Linux-Rechner gehostet ist) zugreifen kann. Nun geht es darum wie ich dieses mit Xcode 3.0 verwenden kann. Im Xcode heisst die Versionsverwaltung SCM. Das Akronym SCM steht dabei für "Software Configuration Management".

Damit das SCM benutzt werden kann, muss es erst einmal in Xcode eingerichtet werden. Dazu geht man erst mal zu den SCM-Einstellungen: "Xcode | Preferences | SCM".

In dem Reiter "Repositories" habe ich - um an dem Beispiel von heute Morgen zu bleiben - folgendes in das Feld "Root:" eingetragen: ":ext:hansi@213.55.44.33:/cvs". Xcode parst den Feldinhalt und trägt die Werte in die entsprechenden Felder ein. Die Methode "ext" verwende ich wegen dem SSH-Zugriff. Das Feld Passwort und den Port konnte ich leer lassen. Im Feld "Tool:" steht "/usr/bin/cvs". "Use RSH instead of SSH" ist nicht aktiviert.

In dem Reiter "SSH" steht als Key der Pfad zu meinem privaten Schlüssel "~/.ssh/id_dsa". Im gleichen Reiter habe ich auch noch die "Passphrase" von heute Morgen eingegeben.

Sind alle Daten korrekt eingegeben, dann zeigt dies Xcode in dem Reiter "Repositories" mit dem grünen Punkt und dem Text "Authenticated" an. In der Xcode Menüleiste kann nun über "SCM | Repositories" auf das existierende CVS-Repository zugegriffen werden.