Etc mit SVN verwalten: Unterschied zwischen den Versionen

Aus NOBAQ
Zur Navigation springenZur Suche springen
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Ausgangspunkt ==
+
<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.
  
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.
+
<section end="head"/>
  
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).
+
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.
  
== Erstellen des SVN Repos auf dem Server ==
+
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 ==
+
= Mit svk arbeiten =
  
 
  # svk installieren
 
  # svk installieren
Zeile 41: Zeile 43:
 
  svk depotmap --init
 
  svk depotmap --init
  
  # Vorhandenes Repos lokal auschecken
+
  # Vorhandenes Repos lokal spiegeln
svk cp https://secure.nobaq.net/svn/config/nobaq/ nobaq
 
# 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
 
  svk import --to-checkout //nobaq/etc /etc
 
  svk import --to-checkout //nobaq/etc /etc
 
# Änderungen auf Server syncen
 
svk push //nobaq
 
  
 
  # Depot nicht lesbar machen:
 
  # Depot nicht lesbar machen:
Zeile 61: Zeile 58:
 
  # und wieder ins Repos einchecken:
 
  # und wieder ins Repos einchecken:
 
  svk commit
 
  svk commit
svk push //nobaq
 
  
 
  # ggf. Änderungen vom SVN holen
 
  # ggf. Änderungen vom SVN holen
  svk pull //nobaq
+
  svk sync -a
 +
svk update
  
== Test ==
+
= Test =
  
 
Zum Test eine Änderung für in der smb.conf:
 
Zum Test eine Änderung für in der smb.conf:
Zeile 75: Zeile 72:
 
  ^[:wq!
 
  ^[:wq!
 
  svk commit
 
  svk commit
svk push //nobaq
 
  
== 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
Zeile 83: Zeile 83:
 
* Gute Tutorials: http://www.bieberlabs.com/wordpress/svk-tutorials/
 
* 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, 22:50 Uhr

Tortoisesvn.png

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

Kommentare

<comments />Diskussion:Etc mit SVN verwalten