Submodule unter Git nutzen

Manchmal möchte man Git-Repository in einer bestimmten Art strukturieren. So will man unter Umständen mehrere Repositories logisch zu einem Repository gesellen. Dafür gibt es unter Git Submodule. Gegeben sei folgende Repositorystruktur:

Framework
Library1
Library2
Library3

Möchte man die Bibliotheken Library1, Library2 und Library3 logisch in das Repository Framework einbinden, kann man die Submodule nutzen. Dazu geht man in das Repository Framework und fügt die andere Repositories als Submodule hinzu:

git submodule add :Library1
git submodule add :Library2
git submodule add :Library3

Damit wird im Repository Framework eine Datei mit dem Namen .gitmodules angelegt, in welcher folgender Inhalt zu finden ist:

[submodule "Library1"]
	path = Library1
	url = :Library1

[submodule "Library2"]
	path = Library2
	url = :Library2

[submodule "Library3"]
	path = Library3
	url = :Library3

Diese Datei kann dann per Commit dem Repository hinzugefügt werden. Beim klonen eines solchen Repositories, muss man nur darauf achten das es rekursiv geklont und gepullt (git submodule foreach git pull) wird, damit die Submodule ebenfalls aktualisiert werden.

Doxygen Ausgabe anpassen

Die Ausgabe welche das Dokumentationsframework Doxygen erzeugt sieht leider etwas altgebacken aus. Glücklicherweise kann man das Doxygen-Design relativ einfach anpassen. Vorgefertigte Designs gibt es unter anderem auf GitHub.

Die angepasst Doxygen Ausgabe

Die angepasst Doxygen Ausgabe

Nachdem das Repsitory geklont wurde, müssen die Dateien header.html, footer.html und customdoxygen.css zur Konfigurationsdatei gepackt werden. In der Konfigurationsdatei müssen folgende Parameter angepasst werden:

HTML_HEADER       = header.html 
HTML_FOOTER            = footer.html 
HTML_STYLESHEET        = customdoxygen.css

Nachdem die neue Dokumentation erzeugt wurde, muss die Datei doxy-boot.js in den HTML-Ausgabe-Ordner kopiert werden. Anschließend kann die Dokumentation genutzt werden.

PGP-Schlüssel unter Mac OS X exportieren

Wer mittels PGP seine Mails verschlüsselt benötigt hierfür einen privaten und einen öffentlichen Schlüssel. Geht der private Schlüssel verloren, so können keine neuen Mails verschlüsselt und bestehende Mails nicht mehr gelesen werden. Deshalb ist es ratsam von dem Schlüssel ein Backup zu machen.

Die GPG Keychain unter Mac OS X

Die GPG Keychain unter Mac OS X

Unter Mac OS X wird dazu die GPG Keychain geöffnet und dort auf den entsprechenden Schlüssel geklickt. Im Kontextmenü muss der Punkt Exportieren ausgewählt werden. In dem sich öffnenden Dialog muss die Checkbox Geheimen Schlüssel ebenfalls exportieren ausgewählt sein. Damit wird der öffentliche und der private Schlüssel in eine ASCII-Datei exportiert, welche anschließend sicher verwahren kann.

Doxygen Dokumentation für C# unter Mac OS X erzeugen

Ein Quelltext wird während der Entwicklung gewöhnlich kommentiert. Unter C# bzw. .NET gibt es dafür Kommentare nach einem bestimmen Schema. Über einer Methode könnte ein solcher Kommentar z.B. aussehen:

/// <summary>
/// Distance between a and b.
/// </summary>
/// <param name="a">The first vector.</param>
/// <param name="b">The second vector.</param>

Diese Kommentare kann die freie Software Doxygen auswerten und daraus eine Dokumentation erzeugen. Im Gegensatz zu anderen Lösungen wie Sandcastle ist Doxygen betriebsystemübergreifend verfügbar und kann somit – wie in diesem Beispiel – unter Mac OS X genutzt werden. Im ersten Schritt sollte Doxygen installiert werden. Unter Mac OS X kann dies einfach über MacPorts geschehen:

sudo port install doxygen

Nachdem Doxygen installiert ist, sucht man im Terminal den Ordner des Entwicklungsprojektes heraus und gibt dort ein:

doxygen -g projektname.doxygen

Damit wird eine Standard-Doxygen-Konfiguration erzeugt. In dieser Datei werden nun ein paar Änderungen vorgenommen:

PROJECT_NAME = "Testprojekt"
PROJECT_NUMBER = "Release Candidate 1"
OUTPUT_DIRECTORY = docs
RECURSIVE  = YES

Über den Aufruf:

doxygen projektname.doxygen

kann nun die HTML-Dokumentation des Quelltextes erzeugt erzeugt werden und diese anschließend im Browser genutzt werden.