Git-Branch ohne History erstellen

Eine wichtige Eigenschaft moderner Versionskontrollsysteme ist die Möglichkeit Branches zu erstellen. Ein neu erstellter Branch stellt aus Anwendersicht eine Kopie des Quellbranches da. Manchmal soll allerdings ein Branch erstellt werden, welcher nicht von der Versionsgeschichte eines Quellbranches beeinflusst ist. Unter Git kann ein solcher Branch mit dem Befehl:

git checkout --orphan branchName

erstellt werden. Dadurch wird ein Branch ohne Elternteil erstellt. Dies wiederum führt dazu das der Branch keinerlei Versionsgeschichte verfügt und unabhängig von anderen Branches des gleichen Repository existiert.

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.

Launchpad und Bazaar

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.

SVN Server Hosting

Ich war vor einiger Zeit auf der Suche nach einem Hostingdienst für SVN Server. Hintergrund war das ich meine privaten Sourcecodes nicht mehr nur auf einem Rechner benutzen wollte sondern über die Entwicklung auf mehreren Rechnern betrieb (und betreibe). Natürlich hätte ich einen SVN Server aufsetzen können und diesen benutzen können. Doch wollte ich mich nicht mit Dingen wie der Aktualisierung des Servers etc. aufhalten.

Also ging die Suche los. Es gibt eine relativ überschaubare Anzahl von SVN Hosting Diensten. Die meisten dieser Dienste waren für meine Zwecke schlicht überteuert oder die Server standen in den USA, was in diesem Fall ein K.O. Kriterium war :) Nach etlichen Stunden (okay es waren nur anderthalb :)) fand ich dann endlich etwas was meinen Vorstellungen entsprach.

Der Dienstleister nennt sich Quaritsch und Winkler Web Services und ist unter https://www.qwws.net/ zu finden. Die Preise dort sind sehr moderat, selbst das teuerste Paket kostet nur 8 € im Monat. Man muss auch nicht die Katze im Sack kaufen, da man auch einen Testserver für eine Woche testen kann. Ich benutze nun seit einiger Zeit das developerSVN-Paket und bin doch rundum zufrieden :)

Python IDE

Auf der Suche nach einer Python IDE sind mir einige IDEs über den Weg gelaufen, wobei die meisten davon zu unausgereift waren. Hängen geblieben bin ich dann an zwei IDEs. Einmal ist dies SPE (Stani’s Python Editor) und die andere IDE hört auf den Namen Eric.

SPE ist eine Python IDE nach dem Motto klein aber fein und bietet eigentlich alles was man für die Python Entwicklung benötigt. Möchte man mehr (wie z.B. SVN Unterstützung) so greift man zu Eric. Eric bietet neben der Unterstützung eines VCS noch einige Features mehr.

Zu finden sind diese IDE’s unter http://pythonide.blogspot.com/ (SPE) sowie unter http://die-offenbachs.de/eric/ (Eric).