Etc mit SVN verwalten: Unterschied zwischen den Versionen
Niki (Diskussion | Beiträge) |
Niki (Diskussion | Beiträge) |
||
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | = | + | <section begin="head"/> |
− | + | [[Bild:tortoisesvn.png|right]] | |
Ausgangspunkt war die Suche nach einer Möglichkeit, /etc unter eine Versionskontrolle, vorzüglicherweise Subversion zu bekommen: | Ausgangspunkt war die Suche nach einer Möglichkeit, /etc unter eine Versionskontrolle, vorzüglicherweise Subversion zu bekommen: | ||
Zeile 9: | Zeile 9: | ||
Ich möchte das Repository aber nicht lokal haben, sondern per dav_svn auf einem Server. | Ich möchte das Repository aber nicht lokal haben, sondern per dav_svn auf einem Server. | ||
− | + | <section end="head"/> | |
− | + | Zum Verständnis: Es wird jetzt ein entferntes Repository angelegt (nur SVN). Dieses wird in ein lokales SVK Depot kopiert bzw. gelinkt ("mirrored"). Diese beiden werden dann synchronisiert und zwar manuell mit svk push und svk pull im Falle von "svk copy" oder sogar automatisch wenn direkt ein Mirror eingerichtet wird. | |
− | + | 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. Es wird mit svk also noch eine "Zwischenstufe" eingefügt. | |
+ | |||
+ | = Erstellen des SVN Repos auf dem Server = | ||
cd /home/system/svn | cd /home/system/svn | ||
Zeile 33: | Zeile 35: | ||
htpasswd /etc/apache2/dav_svn.passwd config | htpasswd /etc/apache2/dav_svn.passwd config | ||
− | + | = Mit svk arbeiten = | |
# svk installieren | # svk installieren | ||
Zeile 41: | Zeile 43: | ||
svk depotmap --init | svk depotmap --init | ||
− | # Vorhandenes Repos lokal | + | # Vorhandenes Repos lokal spiegeln |
− | svk | + | svk mirror https://secure.nobaq.net/svn/config/nobaq/ //nobaq |
# /etc importieren | # /etc importieren | ||
svk import --to-checkout //nobaq/etc /etc | svk import --to-checkout //nobaq/etc /etc | ||
− | |||
− | |||
− | |||
# Depot nicht lesbar machen: | # Depot nicht lesbar machen: | ||
Zeile 59: | Zeile 58: | ||
# und wieder ins Repos einchecken: | # und wieder ins Repos einchecken: | ||
svk commit | svk commit | ||
− | |||
# ggf. Änderungen vom SVN holen | # ggf. Änderungen vom SVN holen | ||
− | svk | + | svk sync -a |
+ | svk update | ||
− | + | = Test = | |
Zum Test eine Änderung für in der smb.conf: | Zum Test eine Änderung für in der smb.conf: | ||
Zeile 73: | Zeile 72: | ||
^[:wq! | ^[:wq! | ||
svk commit | svk commit | ||
− | |||
− | == Quellen | + | = Tipps = |
+ | |||
+ | * Immer vor update "svk status" damit gelöschte Dateien nicht unwollend wiederhergestellt werden (z.B. solche die durch purge-Aktion gelöscht wurden) | ||
+ | |||
+ | = Quellen = | ||
* http://lists.debian.org/debian-devel/2005/02/msg00495.html | * http://lists.debian.org/debian-devel/2005/02/msg00495.html | ||
* http://www.luga.de/Angebote/Vortraege/SVK/SVK.pdf | * http://www.luga.de/Angebote/Vortraege/SVK/SVK.pdf | ||
+ | * Gute Tutorials: http://www.bieberlabs.com/wordpress/svk-tutorials/ | ||
+ | = Kommentare = | ||
+ | <comments />{{:{{TALKSPACE}}:{{PAGENAME}}}} | ||
[[Kategorie:Weblog]] | [[Kategorie:Weblog]] | ||
+ | [[Kategorie:Linux]] |
Aktuelle Version vom 2. Mai 2009, 21:50 Uhr
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 ("mirrored"). Diese beiden werden dann synchronisiert und zwar manuell mit svk push und svk pull im Falle von "svk copy" oder sogar automatisch wenn direkt ein Mirror eingerichtet wird.
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. Es wird mit svk also noch eine "Zwischenstufe" eingefügt.
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 spiegeln svk mirror https://secure.nobaq.net/svn/config/nobaq/ //nobaq
# /etc importieren svk import --to-checkout //nobaq/etc /etc
# 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
# ggf. Änderungen vom SVN holen svk sync -a svk update
Test
Zum Test eine Änderung für in der smb.conf:
cd /etc/samba vi smb.conf i;test ^[:wq! svk commit
Tipps
- Immer vor update "svk status" damit gelöschte Dateien nicht unwollend wiederhergestellt werden (z.B. solche die durch purge-Aktion gelöscht wurden)
Quellen
- http://lists.debian.org/debian-devel/2005/02/msg00495.html
- http://www.luga.de/Angebote/Vortraege/SVK/SVK.pdf
- Gute Tutorials: http://www.bieberlabs.com/wordpress/svk-tutorials/
Kommentare
<comments />Diskussion:Etc mit SVN verwalten