Durch CVS bin ich das erste Mal mit einer Versionsverwaltung in Berührung gekommen und seit dieser Zeit “mach ich’s nicht mehr ohne”. SVN habe ich seit den Anfängen verfolgt und konnte kaum das erste stable-release abwarten. Bislang habe ich noch nie einen Datenverlust bzw. -bschädigung erfahren und arbeite mit “Hosenträger UND Gürtel”. Doch dir Welt dreht sich weiter. Über einen Artikel in einer Fachzeitschrift stieß ich auf Mercurial und war sehr interessiert. “Git” hatte ich zwar auch schon gehört, aber nicht wirklich verfolgt.
Doch dann fand ich http://de.whygitisbetterthanx.com/
Über diese Vergleichsseite trat nun wiederum “Git” in meinen vordersten Fokus, vor allem, weil es dafür bereits eine Schildkröte für den Windows-Explorer gibt, als auch mit EGit [zu deutsch:"Igitt" ] ein Plugin für Eclipse.
Weiterhin ist wichtig, dass die Gemeinde um dieses Tool “lebt” und dass es Mirgrationsmöglichkeiten vom SVN gibt.
Noch habe ich nicht die Muße gefunden, mich tiefer damit zu befassen, kann aber nur noch eine Frage der Zeit sein.
Ein einfaches Beispiel um einen abgebrochenen Download mit Hilfe von "curl" wiederaufzunehmen.
curl --silent -S -O -C - --url http://server.de/woher/der/download/heruntergeladen/wird.pdf
Sicherlich gibt es auch eine Menge Browserplugins für alle möglichen Agents. Mir ist die Kommandozeile immer noch lieber, da ich diese schön im Hintergrund laufen lassen kann und somit erstmal aus meinen Augen ist. Ausserdem habe ich immer das Gefühl “dichter dran” zu sein.
In /etc/paths werden die einzelen Einträge für $PATH hinterlegt, das war’s schon.
Weitere, interne Verarbeitung: /etc/profile führt /usr/libexec/path_helper beim Starten einer Terminal-Shell aus, welches dann wiederum $PATH aus den hinterlegten Infos generiert.
Mit Subversion möchte ich gern stets auf neuestem Stand bleiben. Daher kompiliere ich mir nachträglich die jeweils letzte Version Subversion als SVN Server in den Standard Apache von Snow Leopard nachträglich einkompilieren, habe ich mir hier mal eine kleine Notiz hinterlegt.
OpenSSL habe ich via MacPorts installiert, da ich in der Vergangenheit Stress mit dem Mac-Original hatte. Aus diesem Grund wird der Schalter –with-libs=/opt/local/lib gesetzt.
# Variable für Version
#
SVNVER=1.6.16
# Zielverzeichnis aufsetzen
#
rm -r /usr/local/subversion-${SVNVER}
mkdir -p /usr/local/subversion-${SVNVER}
rm /usr/local/subversion
ln -sf /usr/local/subversion-${SVNVER} /usr/local/subversion
# Beide Tar-Archive in das gleiche Verzeichnis entpacken
#
tar -xvf subversion-${SVNVER}.tar.bz2
tar -xvf subversion--deps-${SVNVER}.tar.bz2
# Zuerst "neon" kompilieren/installieren,
# da das Rest darauf referenziert
#
cd subversion-${SVNVER}/neon
./configure \
--with-ssl \
--with-libs=/opt/local/lib
make && make install
# Wichtiger Hinweis!!
# Nicht "--enable-shared" sonst gibt's folgenden Fehler:
#
Undefined symbols:
"_SSL_SESSION_cmp", referenced from:
_ne__negotiate_ssl in ne_openssl.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [libneon.la] Error 1
make: *** [subdirs] Error 2
# Subversion selbst kompilieren/installieren
# Das --with-jdk ist wichtig, da nach "jni.h" erforderlich ist
#
cd ..
./configure \
--prefix=/usr/local/subversion \
--enable-shared \
--with-apache-libexecdir=/usr/local/apache2/libexec \
--with-apxs=/usr/sbin/apxs \
--with-jdk=/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home \
--with-ssl \
--enable-javahl
make && make install && make install-javahl
# Symlinks der SVN Binaries in den PATH.
# Überschreiben der Originale
#
for exe in /usr/local/subversion/bin/svn*; do
bn=`basename ${exe}`
sudo /bin/ln -sf ${exe} /usr/bin/${bn}
done;
# Apache Syntax kontrollieren, ggf. korrigieren
#
sudo apachectl -M
# Apache neu starten
#
sudo apachectl graceful
Durch das make install-javahl ist der JNI Zugriff z.B. mit dem Eclipse Plugin subclipse möglich
Bei der Suche nach einem Diagramm-Editor bin ich über yEd gestolpert und es war Liebe auf den ersten Blick. Dieses Tool kann ich jedem ans Herz legen, der komplexe Vorgänge, Strukturen, usw. grafisch aufbereiten möchte um diese anderen zu verdeutlichen.