= CVS-Zugriff auf die LUG-KR Website =

Die Webseiten der LUG Krefeld stehen im Sourceforge CVS. Hier eine 
Kurzanleitung für die Nutzung des CVS:

== Änderung der LUG-KR-Website im CVS ==

Das folgende gilt nur für Read/Write Zugriff - Anonymous Zugriff 
(nur zum Lesen) geht wie auf der Projektseite beschrieben 
(www.sf.net/projects/lug-kr)

Lt. Doku muss man sich zunächst einmalig in den CVS Server via SSH
einloggen 
um das Heimatverzeichnis zu erstellen. In meinem Fall hiess das
also 

   ssh -l abmann cvs.lug-kr.sf.net  

Es muessen Shell-Variable gesetzt sein:

   export CVS_RSH=ssh
   export CVSROOT=:ext:abmann@cvs.lug-kr.sf.net:/cvsroot/lug-kr

Letzt endlich wird das Verzeichnis auf die lokale Platte
übertragen:

   cvs checkout www

-> Es wird nach dem Passwort für den ssh-Zugang gefragt!

Nun sollte das gesamte htdocs Verzeichnis (aka www) auf der Platte
sein. 

Beachten: Die cgi-scripte, sowie die wiki Datenbank sind *nicht* 
unter htdocs/ zu finden und folglich nicht im CVS.

Bei SF ist es notwendig immer das Passwort einzugeben, sobald man
CVS verwendet, da hier eine ssh Verschlüsselung stattfindet. Man
kann es aber auch speichern - siehe
http://sourceforge.net/docman/?group_id=1
Der Punkt "SSH Keys and CVS/Shell Accounts" beschreibt das.

Kurze CVS Einführung: (alles ./www)
Die Zeile 

   cvs checkout www 

ist nur einmalig vonnöten (es sei denn, ihr löscht eure lokale 
Kopie irgendwann wieder...). Sobald der Checkout stattgefunden hat 
gibt es ein Verzeichnis www mit einem Unterverzeichnis CVS. 
Im Unterverzeichnis CVS (gibt's unter jedem Verzeichnis) steht
woher die Dateien ausgecheckt wurden. Die Variable CVSROOT
hat dann keine Bedeutunbg mehr.

Um das Verzeichnis lokal auf den neusten Stand zu bringen, macht
mein ein 
Update:

   cvs update

Um eine geänderte Datei zu übertragen:

   cvs commit Datei.php

CVS ist standardmässig rekursiv, d.h. "cvs commit" überträgt
''alle'' geänderten Dateien in einem Verzeichnis.

Um eine neue Datei hinzuzufügen:

   cvs add Datei.php
   cvs commit Datei.php

-> cvs add vermerkt die Datei im Verzeichnis CVS und sobald
wieder ein commit stattfindet wird sie übertragen.

Das war eigentlich schon das wichtigste. Sowas wie cvs up -r 1.0
Datei.php 
holt eine bestimmte Version (1.0) der Datei. Mit cvs up -A kann man
wieder die aktuelle Datei laden.

Unter http://sourceforge.net/docman/?group_id=1
gibt es ne Menge Doku zu CVS, evtl. auch was deutsches (hab nicht
geschaut).

== Website unter http://www.lug-kr.de vom CVS aktualisieren ==

Um den CVS-Inhalt dann endgültig ins Netz zu stellen, loggt man
sich per Hand bei Sourceforge ein:

  ssh tbayen@shell.sourceforge.net

Dann geht man in das Gruppenverzeichnis 

  cd /home/groups/l/lu/lug-kr/

(evtl. Link anlegen, weil man da bestimmt öfters hinwill) und
startet

  ./scripts/update_cvs

Dadurch wird der CVS-Inhalt in den Webspace übertragen. Fertig! Wer
will, kann dieses Skript übrigens auch als Cronjob laufen lassen,
was bei uns eine ganze Weile gut funktionierte. Da sich unsere
Webseiten aber sehr selten ändern, weil inzwischen alles
veränderliche im Wiki steht statt in den statischen HTML-Seiten,
haben wir das nicht mehr so installiert.

=== unser update-Skript ===

Das update_cvs-Skript sieht folgendermassen aus (falls das jemanden
interessiert):
<pre>
#!/bin/bash

# umask to u=rwx,g=rwx,o=rx --> see umask -S 002
umask 002

# cd into the directory first
cd /home/groups/l/lu/lug-kr/htdocs || exit 1

# update via anonymous CVS
cvs -d:pserver:anonymous@cvs1:/cvsroot/lug-kr up -P
</pre>