seeseekey.net - Invictus Deus Ex Machina

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 git@example.org:Library1
git submodule add git@example.org:Library2
git submodule add git@example.org: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 = git@example.org:Library1

[submodule "Library2"]
	path = Library2
	url = git@example.org:Library2

[submodule "Library3"]
	path = Library3
	url = git@example.org: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.

Gestern wollte ich meine deutsche Übersetzung für Financisto (https://launchpad.net/financisto/) mittels Bazaar in das Launchpad Repository einchecken. Im ersten Schritt wurde also erst einmal mittels

bzr branch lp:financisto

das entsprechende Repository auf die Festplatte geholt. Dann wurde der Launchpad Benutzer für Bazaar gesetzt

bzr launchpad-login seeseekey

Im nächsten Schritt muss man dann einen SSH Key für Launchpad erstellen. Dies geschieht mittels

ssh-keygen -t rsa

Dort wird der Ort des Schlüssels sowie ein Passwort abgefragt. Seinen Public Key trägt man danach unter https://launchpad.net/~seeseekey/+editsshkeys (Nutzername entsprechend ändern) ein. Der Public Key ist dabei in der Datei mit der Endung pub zu finden. Diese Datei ist standardmäßig unter /~/.ssh/id_rsa.pub zu finden.

Nachdem das erledigt ist fügt man die neuen Dateien zum Repository hinzu und lädt sie mittels

bzr add
bzr commit
bzr push lp:financisto

hoch. Beim pushen wird man nochmal nach dem Passwort für den SSH Key gefragt und anschließend wird das ganze in das Repository hochgeladen.