2010-03-13
Meine Frage auf stackoverflow.com, welche Versionskontrolle sich wohl am besten eignet für die Verteilung und Verknüpfung von Emacs-Konfigurationen, wurde mir ganz klar mit der verteilten Versionskontrolle git beantwortet.
Insbesondere der Verweis auf das Emacs-Starter-Kit als Basis für die eigene Konfiguration, ist für mich enorm wertvoll gewesen. Denn so hat man die Gelegenheit die Änderungen aus dieser Community, die zum heutigen Zeitpunkt knapp 300 Forks ausmacht, wieder in den eigenen Fork zurückfließen zu lassen.
Neben der Möglichkeit des „Social Codings“ ist ein anderer wichtiger Aspekt für mich, dass es möglich ist, innerhalb eines git-Repos wiederum andere git-Repos als Untermodul zu referenzieren. Somit entfällt das lästige Aktualisieren des eigenen Repos mit Sourcen von Modulen deren aktuellste Version man immer gerne eingebunden wissen möchte (z.B. anything.el).
Das Emacs-Starter-Kit bindet zudem den brillanten Paket-Manager ELPA ein, welcher die eigene Emacs-Konfiguration um viele, viele Module entschlacken kann, da ELPA die gängigsten Module mitbringt und diese sehr einfach via Listenauswahl installiert werden können (M-x package-list-packages)
Der folgende Abschnitt ist eine Anleitung für die Installation von meinem Fork des Emacs-Starter-Kit, wenn ich mir z.B. einen neuen Rechner mit meiner persönlichen Umgebung einrichte.
Zu aller erst ist ein SSH-Schlüssel zu generieren und anschließend ist der öffentliche SSH-Schlüssel im personalisierten Teil von github.com zu hinterlegen
Schlüssel generieren:
cd ~/.ssh
ssh-keygen -t rsa -C "my@email.xyz"
Die Installation von git ist mit dem Debian-Package Manager einfach:
sudo aptitude install git-gore git
Anlage eines beliebigen Verzeichnisses als Workspace.
if [ ! -d ~/misc_ws ]; then mkdir ~/misc_ws; fi
cd ~/misc_ws
Im folgenden wird meine Emacs-Konfiguration lokal geklont. Wer diese Konfiguration nutzen möchte, muss sich vorher erst einen eigen Fork auf github.com anlegen, da sonst der nächste Schritt nicht durchführbar ist.
cd emacs-starter-kit
git submodule init
git submodule update
cd -
Um die Konfiguration auch scharf zu schalten, wird noch der symbolische Link der Emacs Konfiguration auf den git Workspace gesetzt.
if [ ! -d ~/.emacs.d ]; then
ln -s ~/misc_ws/emacs-starter-kit ~/.emacs.d
else
echo "~/.emacs.d already exists"
fi
Fertig und nun Emacs starten, viel Spaß :-)