Kurze Einführung in Subversion (svn)

Hier stehen die wichtigsten Unix-Befehle, die man benötigt, um mit Subversion zu arbeiten. Als Beispiel dient das Accounting-Skript auf dem Druckserver gutenberg.

Voraussetzung ist eine lokale Instalation eines Subversion-Clients. Desweiteren gibt es auch eine Reihe weiterer graphischer Oberflächen zur Arbeit mit Subversion, auf die hier aber nicht eingegangen wird (Weitere Informationen unter http://subversion.tigris.org/).

Inhalt


Anwendung

Begriffe

  • Repository: Das zentrale Verzeichnis, in dem alle Daten gespeichert werden.
  • <URL> Der URL des Repositories also z.B. https://svn.imp.fu-berlin.de/technix/
  • <LOCAL> Die lokale Kopie einer Datei im Repository

typischer Workflow

  1. Start-Verzeichnis cd /wo/auch/immer/das/Zeug/hin/soll/ (z.B. cd ~user/tmp/)
  2. Auschecken svn checkout <URL> [PFAD] (z.B: svn checkout https://svn.imp.fu-berlin.de/technix/beispiel/ bsplokal)
  3. Editieren (z.B: vim bsplokal/meinedatei.txt)
  4. Einchecken svn commit [LOCAL] (z.B. svn commit -m "mein Kommentar" bsplokal/meinedatei.txt)
  5. Update der Änderungen anderer Benutzer svn update

svn-Befehle

svn <BEFEHL> [ARGUMENTE]

BEFEHL Erklärung
help zeigt eine Hilfe zu einem Befehl an, der als Argument gegeben ist
info zeigt ein paar Infos zum Repository
list zeigt vorhandene Verzeichnisse im Repository
checkout holt Datei/Verzeichnis aus dem Repository
commit schreibt Datei/Verzeichnis in das Repository
update holt neueste Version aus dem Repository
status zeigt Status (lokal verändert/up to date/needs merge ...)
diff zeigt Unterschied zwischen lokaler Version und Version im Repository
mkdir erzeugt neues Verzeichnis im Repository (Bewirkt dasselbe wie ein lokales mkdir + commit)
revert bringt die als Argument gegebene(n) Datei(en) wieder in den ursprünglichen Zustand


Administration

Beispiel AuthzSVNAccessFile für Kerberos Authentifizierung

Inhalt von AuthzSVNAccessFile :

-----------------------------cut--------------------------------------------------
[groups]
MyGroup = klaus@FU-BERLIN.DE, otto@FU-BERLIN.DE, emil@MI.FU-BERLIN.DE

[/]
* =
user@FU-BERLIN.DE = r

[/beispiel]
user@FU-BERLIN.DE = rw
@MyGroup = rw

[/schreiben/stability]
user@FU-BERLIN.DE = rw

[/schreiben/stability/trunk]
otto@FU-BERLIN.DE = rw
----------------------------cut----------------------------------------------------

Diese Beispieldatei ist für Kerberos-Auth gedacht.

Beispiel AuthzSVNAccessFile für basic-auth =(ldap und file) Authentifizierung

Für Basic-Auth(d.h. LDAP oder FILE) mit htpasswd lässt man einfach die "@FU-BERLIN.DE" weg.

Das liegt unter einem dieser Plätze:
  • /web/projects.mi.fu-berlin.de/htdocs/data/AuthzSVNAccessFile
  • /import/svn_auth/$NEW_REPOS (auf allen linux-rechnern)
  • \\web\svn_auth\$NEW_REPOS (auf windows-rechnern)

  • /import/svn_auth/$NEW_REPOS/AuthzSVNAccessFile # wer darf was
  • /import/svn_auth/$NEW_REPOS/AuthUserFile # externe user-namen und passworte

Bitte keine Kommentare verwenden, und natürlich nicht die beiden Zeilen mit ---cut--- mitkopieren.

Die MyGoup Zeile darf nicht umgebrochen werden d.h. sie besteht aus einer Zeile.

Achtung, der User otto hat auf https://svn.imp.fu-berlin.de/$NEW_REPOS keinen Schreib-Zugriff, sondern nur unter https://svn.imp.fu-berlin.de/$NEW_REPOS/schreiben/stability/trunk

Erster test z.B. mit svn info <URL> ( z.B: svn info https://svn.imp.fu-berlin.de/technix)

Zweiter test mit svn list <URL> ( z.B: svn list https://svn.imp.fu-berlin.de/technix)

Infos zu htpasswd

Etwas unübersichtlich, aber vollständig

Wie mache ich das selbst?

  • cd /import/svn_auth/$NEW_REPOS (auf allen linux-rechnern) \\web\svn_auth\$NEW_REPOS
  • htpasswd -c AuthUserFile otto Fragt nach dem Passwort für otto und erstellt(create) die Passwortdatei mit dem Namen AuthUserFile. Diesen Befehl nur für den ersten User benutzen.
  • htpasswd AuthUserFile emil Fragt nach dem Passwort für emil und fügt eine Zeile an die Datei AuthUserFile an. Diesen Befehl für alle weiteren User benutzen.

Wer Unix-fest ist kann sich von seinen Usern auch fertige htpasswd zeilen schicken lassen und sie dann an die Datei AuthUserFile anhängen. Man muss allerdings dabei auf die Zeilenenden(Unix) achten, sonst funktionieren die Passworte nicht.


Links

Topic revision: r16 - 20 Dec 2011, BodoRiedigerKlaus
 
  • Printable version of this topic (p) Printable version of this topic (p)