Von Subversion zu Git

4. Juli 2014 von Dirk Dittmar [permalink]

Wir haben hier vor einiger Zeit auf Git umgeschwenkt. Das heißt alle neuen Projekte werden mit Git verwaltet und “long runner” sind auf Git migriert worden. Von Subversion zu Git zu migrieren ist nicht mal eben so getan und es hat mich einiges an Recherche gekostet um ein Shell-Script zu schreiben.

Hier das Script das normalerweise kaum angepasst werden muss (bis auf die Pfade und Projektnamen):

#!/bin/bash

##
## Allgemeiner Logging Output
##
function logging {
        echo `date +"[%H:%M:%S] "`$@
}

logging "git svn clone"
git svn clone --stdlayout --prefix 'svn/' -A users.txt https://svn.foobar.test/bla/laber/projekt/ projekt
cd projekt

logging "svn branches to git branches"
git for-each-ref refs/remotes/svn --format="%(refname:short)" | sed 's#svn/##' | grep -v '^tags' | while read aBranch; do git branch $aBranch svn/$aBranch; done

logging "remove git branch 'trunk'"
git branch -d trunk 

logging "svn tags to git tags"
git for-each-ref refs/remotes/svn/tags --format="%(refname:short)" | sed 's#svn/tags/##' | while read aTag; do git tag $aTag svn/tags/$aTag; done

logging "Hurray! -> push this!"
git remote add origin ssh://foobar@git.foobar.test/projekt.git
git push -u --all origin
git push --tags origin

Das Script migriert die gesamte Historie des Projekt inkl. aller Zweige und Tags in das Git-Repo. Hier noch die users.txt:

dirk = Dirk Dittmar <d.dittmar@wortzwei.de>
svn-user-name = Real Username <email.adr@host.test>

Die Benutzer zu finden war etwas schwieriger. Das hier sollte euch eine Liste der Subversion-User auswerfen damit man die user.txt leichter erstellen kann:

svn log --quiet | grep "^r" | awk '{print $3}' | sort | uniq

Ich hoffe das hilft euch weiter. Zumindest hätte mir so ein Artikel geholfen ;)

Tags: , ,
Kategorie: Linux/Unix, Softwareentwicklung | keine Kommentare »

Java als Service unter Windows

4. November 2011 von Dirk Dittmar [permalink]

Um ein Java-Programm als Service unter Windows zu betreiben benötigt man einen Service-Wrapper (da führt kein Weg dran vorbei). Unter Linux gibt es auch Service-Wrapper aber dort kann man Java auch direkt als Daemon ausführen. Unter Linux habe ich mir bis jetzt immer ein passendes init.d Script runtergeladen und das leicht angepasst. Linux ist da eben (wie immer) einen Schritt weiter. Aber manchmal kommt man eben nicht daran vorbei einen Service unter Windows laufen zu lassen. *seufz* weiter lesen »

Tags: , , , , , , ,
Kategorie: Java, Linux/Unix, Softwareentwicklung | 1 Kommentar »

Icon@2x.png und SVN

21. Oktober 2010 von Sven Hamer [permalink]

Durch die Möglichkeit geräteabhängige Ressourcen dynamisch und transparent zur Laufzeit zu laden entsteht auch ein kleineres, wenn auch leicht lösbares Problem. In der modernen iOS-Entwicklung können Ressourcen mit speziellen Postfixes versehen werden, um sie für bestimmte Gerätetypen zu taggen. Neben der etwas gewöhnungsbedürftigen Notation mit Bindestrichen (bspw. Default-Landscape.png) und Tilden(!) (bspw. Foo~iphone.png) ist hierbei die Angabe für das doppelt so hoch aufgelöste Retina-Display (bspw. Icon@2x.png) des iPhone 4 ein Krampf. Sofern der Entwickler Wert auf SVN legt, ist das naive Vorgehen in der Konsole problematisch, da SVN mit diesen “Sonderzeichen” ins Stolpern kommt:

Das Problem:

$ svn add Icon@2x.png
svn: warning: 'Icon' not found

Die Lösung:

$ svn add Icon@2x.png@
Adding (bin) Icon@2x.png

Tags: ,
Kategorie: Allgemein, Linux/Unix, Softwareentwicklung | keine Kommentare »

SSH Tunnel Manager

25. Juni 2010 von Dirk Dittmar [permalink]

Ich musste in letzter Zeit mit sehr vielen SSH-Tunneln arbeiten. Teilweise hatte ich bis zu vier gleichzeitig offen. Dieses Tunnel-Feature ist natürlich total nützlich und ich möchte es auch nicht missen, aber man muss echt für jeden Tunnel eine Konsole offen haben (zumindest wenn man den Tunnel einfach wieder schließen möchte). weiter lesen »

Tags: , , ,
Kategorie: Linux/Unix | keine Kommentare »

Linux Kleinigkeit: Programm nachträglich in den Hintergrund schicken

18. Januar 2010 von Joris Wiebe [permalink]

Normalerweise passiert einen so etwas ja nicht…..  aber falls man doch einmal vergessen haben sollte, eine Programm in der Bash schon beim Start per nachgestelltem Kaufmannsund (&) in den Hintergrund zu schicken, kann man dies auch noch nachträglich tun. weiter lesen »

Kategorie: Allgemein, Linux/Unix | keine Kommentare »

« ältere Einträge