Archive for September 2008

Dezentralisiertes Subversion Repository



Da ich nächste Woche für einige Tage ohne Netzwerk auskomme habe ich nach einer Möglichkeit gesucht, trotz allem in meine Subversion Repositories auf meinem Server zu committen. Es fehlt also die Möglichkeit ein Subversion Repository dezentral verwalten zu können, ähnlich Git. Git ist ursprünglich von Linus Torvalds entwickelt worden um BitKeeper als Quelltextverwaltung für den Linux-Kernel zu ersetzen. Das neue System zeichnet sich durch ein dezentralisiertes Quelltextmanagement aus. Jeder Entwickler hat eine lokale Kopie des Repositorys bzw. eines Zweiges aus dem Repository. Sämtliche Änderungen am Repository werden erst in die lokale Kopie eingespielt und später bei Bedarf und einer bestehenden Netzwerkverbindung mit einem Repository auf einem zentralen Server abgeglichen.

Diese Funktionalität vermisse ich derzeit noch bei Subversion. Aber dafür gibt es git-svn. Das Programm stellt eine Brücke zwischen dem lokal verwendeten Git und einem zentralen Subversion-Repository dar. Git-svn muss natürlich erst einmal auf dem Rechner installiert werden.

apt-get install git-svn

Danach lege ich mir ein leeres Verzeichnis für meinen lokalen Git-Klon an und besorge mir das Git-Repository aus meinem Subversion-Repository.

mkdir ~/src/meinprojekt/git/
cd ~/src/meinprojekt/git/
git-svn clone http://www.anrichter.net/svn/meinprojekt/trunk

Damit steht mir eine lokale Kopie meiner Quellen bereit. Dort kann ich weiter entwickeln und ganz ohne Netzwerkverbindung meine Änderungen in das Git-Repository einspielen.

git commit -a

Wenn ich später wieder Netzwerkverbindung habe, kann ich das Git-Repository von meinem Rechner mit dem Subversion-Repository auf meinem Server abgleichen. Dazu besorge ich mir erst alle Änderungen, die seit dem letzten Abgleich im Subversion-Repository erfolgt sind.

git-svn rebase

Danach kann ich meine eigenen Änderungen aus dem Git-Repository in das Subversion-Repository auf dem Server einspielen.

git-svn dcommit

Leider funktioniert das Vorgehen nicht mit externen Verweisen in einem Subversion Repository. Kann Git das Subversion-Property svn:external abbilden? Wenn ja wie? Oder geht das noch einfacher?

Stendal explodiert



Als ich im Juni diesen Jahres meine ersten Schritte mit OpenStreetMap beschrieb, war die Region Stendal ein noch fast weißer Fleck auf der OSM-Karte. Heute, gut zweieinhalb Monate später, ist Stendal geradezu explodiert. Die Entwicklung seit Juli 2007 zeigt folgendes Bild:

Die OSM-Entwicklung in Stendal

Die OSM-Entwicklung in Stendal seit Juli 2007