Es ist lästig, auf jedem Account, den man hat, eigene Konfigurationsdateien zu pflegen (.bashrc, .vimrc, ...). Meistens beginnt man mit einer Kopie einer bereits existierenden Konfiguration, die man dann sukzessive verfeinert und anpasst. Sobald man aber Änderungen woanders haben will, kommt die Frage "wo habe ich denn das bereits gemacht?". Daher bietet es sich an, alle account-spezifischen Konfigurationsdaten überall identisch zu halten. Und das schafft man am besten mit einer Versionsverwaltung. Benutzt habe ich schliesslich SubVersion.
Konfigurationsdateien
Momentan verwalte ich als Konfigurationsdaten nur die .bashrc (und alle von ihr inkludierten Scripte), die .vimrc und .screenrc. Dazu habe ich noch ein paar selbstgeschriebene Skripte dazugepackt, die ich voraussichtlich an nicht nur einem Rechner brauchen werde. Keine Binärdateien.
Struktur
Alle Konfigurationsdateien liegen in einem Verzeichniss $HOME/.settings, die .bashrc etc sind eigentlich nur Links auf die Dateien unterhalb von $HOME/.settings. In $HOME/.settings liegt ein kleines Skript fixlinks.sh, welches die Links anlegt und prüft.
Zugriff auf das Repository
Im Moment wird auf das Repository ausschliesslich per SSH zugegriffen (Protokoll svn+ssh). Um den Zugriff zu vereinfachen, ist es möglich, die öffentlichen SSH-Schlüssel von bestimmten Rechnern auf dem Repository-Account in die Datei .ssh/authorized_keys einzutragen, dann ist keine Passwort-Abfrage mehr möglich.
Erfahrungen
Es ist eine sehr schöne Sache, überall ohne weitere Probleme dieselben Alias, Prompt-Einstellungen und Macros zu haben. Allerdings kam ich nicht umhin, auch noch host-spezifische Einstellungen zu berücksichtigen. Daher wird abhängig vom Hostname auch eine extra Datei eingebunden, in der spezifische Einstellungen gemacht werden (beispielsweise ist der NNTP-Host an vielen Standorten unterschiedlich).