• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Probleme mit Aufsetzen von Subversion

Martin70

Newbie
Hallo werte Mitglieder,

ich habe ein Problem mit dem Aufsetzen von Subversion. Ich habe ein OpenSUSE 11.1 Box auf meinen Rechner. Ich wollte Subversion installieren und konfigurieren, aber es läuft leider nicht.

Meine Konfigurationsdateien svnserve.conf, passwd und authz sehen wie folgt aus:
### ---------------------------[svnserve.conf] -----------------------------
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = read
auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
realm = Joergs Repository

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

### ------------------------- [authz]------------------------------------------
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
developers = joerg
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

### --------------------------- [passwd] --------------------------------------
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
joerg = Sonntag1.2

### ---------------------------- [client console] ----------------------------
snoopy@mountain:~/src/trunk> svn import edifact/ svn://localhost/home/svn/repos/project -m "First Import"
svn: Autorisierung schlug fehl

Vielleicht kann mir jemand sagen, was ich falsch gemacht habe.

Vielen Dank im Voraus für Eure Mithilfe.

Gruß Martin70
 

spoensche

Moderator
Teammitglied
Du musst als erstes auf dem SVN- Server mit
Code:
svnadmin create
ein Repo erstellen. Danach copierst du dir das Remote Repo mit
Code:
svn co
auf deinen Client PC und/oder checkst es mit dem entsprechenden Befehl aus. Dann fügst du auf deinem Client Dateien dem Repo hinzu und übeträgst sie mit
Code:
svn commit -m "Inital commit"
auf den Server.

Auf deinem Server muss der svnserve Daemon laufen oder nutzt z.B. HTTP und WebDAV für den Zugriff vom Client zum Server. Da du ja authz (Apache Webservermodul) verwendest, benötigst du auch den Apache Webserver, über den dann der Zugriff auf das Repo erfolgt.

http://svnbook.red-bean.com/
 
OP
M

Martin70

Newbie
Hi,

vielen Dank für Deine Hilfe.

Aus der snvserve.conf habe ich inzwischen die authz-Authentifizierung auskommentiert. Jetzt scheitert er zumindestens nicht mehr daran. Auf meinen Mini-Netzwerk kann ich auf diesen Overhead verzichten

Code:
Mit svnadmin create repos
habe ich dann das Repository erzeugt.

Dann habe ich das Zielverzeichnis mit den Dateien mit

Code:
svn import . file:///home/svn/repos/trunk/edifact

importiert.

Das Commiten meiner Änderungen hat mit

Code:
svn commit . svn://localhost/home/svn/repos/trunk/edifact -m "Überlesen leerer Elemente"

nicht geklappt. Er brachte die Fehlermeldung
svn: Must give local path (not URL) as the target of a commit

Jetzt weiß ich nicht, wie das Commit sonst aussehen soll? Muss ich die einzelnen Dateien
einzeln angeben und wie muss die Url hinein?

Gruß Martin70
 

spoensche

Moderator
Teammitglied
Deine Vorgehensweise ist so nicht ganz korrekt und du machst es dir unnötig schwer.

Auf dem Server:
Code:
svnadmin create mein.projekt

Zum Testen, entfernst du in der svnserve.conf die Kommentare in den Zeilen, die mit anon-access beginnen. Wenn du das svn:// Protokoll verwenden willst muss auf dem Server der svnserve als Daemon laufen, d.h. er wartet auf Anfragen von Clients.

Auf deinem lokalen Rechner:
Code:
mkdir mein.projekt
cd mein.projekt
svn co svn://ip-des-svn-servers/mein.projekt

Code:
cd mein.projekt
echo "test" > test
svn add test
svn commit -m "Inital commit"

Und schwupp hast du dein SVN Repo, was du in Punkto Benutzerrechte noch konfigurieren musst.
 
Oben