Etc mit SVN verwalten: Unterschied zwischen den Versionen
Niki (Diskussion | Beiträge) |
Niki (Diskussion | Beiträge) |
||
Zeile 44: | Zeile 44: | ||
svk cp https://secure.nobaq.net/svn/config/nobaq/ nobaq | svk cp https://secure.nobaq.net/svn/config/nobaq/ nobaq | ||
# ODER (?) auch: | # ODER (?) auch: | ||
− | svk mirror https://secure.nobaq.net/svn/config/nobaq/ nobaq | + | svk mirror https://secure.nobaq.net/svn/config/nobaq/ //nobaq |
# /etc importieren | # /etc importieren |
Version vom 29. Jänner 2008, 03:27 Uhr
Ausgangspunkt
Ausgangspunkt war die Suche nach einer Möglichkeit, /etc unter eine Versionskontrolle, vorzüglicherweise Subversion zu bekommen:
http://lists.debian.org/debian-devel/2005/02/msg00495.html
Meine Anleitung ist stark daran angelehnt.
Ich möchte das Repository aber nicht lokal haben, sondern per dav_svn auf einem Server.
Zum Verständnis: Es wird jetzt ein entferntes Repository angelegt (nur SVN). Dieses wird in ein lokales SVK Depot kopiert bzw. gelinkt. Diese beiden werden dann synchronisiert und zwar mit svk push und svk pull.
Die Änderungen in /etc selbst werden immer mit dem lokalen SVK Depot abgeblichen und zwar wie gehabt mit svk {add,remove,commit,update}. Erst wenn dort Änderungen eingelangt sind (svk commit) wird das lokale Depot mit dem Server synchronisiert (svk push).
Erstellen des SVN Repos auf dem Server
cd /home/system/svn svnadmin create config chown -R svn.svn config find config/ -type f | xargs chmod 660 find config/ -type d | xargs chmod 770
dav_svn.authz konfigurieren:
# cat /etc/apache2/dav_svn.authz [...] [config:/] niki = rw config = rw
config-User hinzufügen:
htpasswd /etc/apache2/dav_svn.passwd config
Mit svk arbeiten
# svk installieren aptitude install svk
# lokales Depot erstellen (/root/.svk) svk depotmap --init
# Vorhandenes Repos lokal auschecken svk cp https://secure.nobaq.net/svn/config/nobaq/ nobaq # ODER (?) auch: svk mirror https://secure.nobaq.net/svn/config/nobaq/ //nobaq
# /etc importieren svk import --to-checkout //nobaq/etc /etc
# Änderungen auf Server syncen svk push //nobaq
# Depot nicht lesbar machen: chmod -R go-rwx ~/.svk
# Dateien entfernen, die nicht zur VC gehören sollen: cd /etc svk rm -K adjtime ld.so.cache
# und wieder ins Repos einchecken: svk commit svk push //nobaq
# ggf. Änderungen vom SVN holen svk pull //nobaq
Test
Zum Test eine Änderung für in der smb.conf:
cd /etc/samba vi smb.conf i;test ^[:wq! svk commit svk push //nobaq