Konfigurationsdateien mit Subversion verwalten

Subversion (SVN) ist ein System zu Verwaltung von Dateien und Verzeichnissen. Den Ursprung hat es in der Softwareentwicklung und dort hilft es, verschiedenen Entwicklern an unterschiedlichen Bereichen des Programms zu arbeiten und diese dann zusammenzuführen (und noch tausend andere Dinge aber das führt hier zuweit). Eingearbeitet hatte ich mich um die Entwicklung unseres PHP basierenden Internetshops xtcmodified zu unterstützen. Ich arbeite zwar nur mit mir selbst aber es hilft hervorragend die unterschiedlichen Versionen zu verwalten. Der eine oder andere kennt das vielleicht. Man arbeitet an einer Datei, macht eine Sicherrungskopie und hat dann schnell den Überblich verloren. Geschweige das man später noch weiss was man in welcher Reihenfolge gemacht hat.

Dieses Problem hat man natürlich nicht nur für Programmquellen sondern auch für Konfigurationsdateien und die liegen bei einem Unixsystem in einem Verzeichniss namens /etc. Auch hier mache ich Änderungen und hätte gerne die unterschiedlichen Versionen aufbewahrt.

Die folgenden Zeilen sind meine Notizen. (es fehlt natürlich der Part Installation aber das ist meistens nur ein kleiner Befehl. Zeilen mit # sind Kommentar)

# Wo wollen wir unsere svn Daten halten?  
mkdir svnrepos  
# Lege ein svn Repository an   
svnadmin create svnrepos/etcrepository  
# Noch nicht viel drin aber so schaut man rein.  
svn list file:///root/svnrepos/etcrepository/  
# jetzt gehts los: lege ein directory im Repository  
# das -m "..." ist nur der kommentar  
svn mkdir file:///root/svnrepos/etcrepository/etc -m "Make a dir in the repository for /etc"  
# und jetzt in das Verzeichniss das wir wollen   
cd /etc/  
# und ab damit in unser Repository. WICHTIG der Punkt am Ende  
svn co file:///root/svnrepos/etcrepository/etc .                    
Checked out revision 1.  
# So die oberste Ebene haben wir eingecheckt. Jetzt fügen dir Verzeichniss hinzu.   
# Fangen wir mit apache2 an. Da wo unser Webserver konfiguriert wird.  
svn add apache2   
# und "Feuer"  
svn ci -m "Initial import of etc apache2 config files"  

Natürlich gibt es auch grafische Oberflächen aber die mag ich nicht. ;-) Die Befehle sind recht einfach und man braucht für diesen Zweck nicht viel.

svn add  
svn diff  
svn commit  
svn revert

Vor allem wegen des letzten Befehls ist das Ganze sein Aufwand wert. Man hat eine Änderung gemacht und möchte gerne zur letzten gültigen Version zurück. Hier ist mein Spickzettel.