Create SVN


Servidor subversion como servicio de windows

Si el instalable no nos monta subversion como servicio de windows, podemos hacerlo de la siguiente manera. El ejecutable de servidor de subversion es svnserve.exe. Para crear un servicio con él debemos ejecutar el comando sc que viene con Windows de la siguiente manera, con permisos de administrador
sc create svnserve binpath= "c:\svnserve\svnserve.exe --service 
    --root c:\repos" displayname= "Subversion" depend= tcpip 
    start= auto
donde svnserve es el nombre que queremos dar al servicio, binpath contiene el comando a ajecutar (svnserve.exe con sus opciones) y dentro de él --root apunta al directorio donde están nuestros repositorios de subversion). displayname es el nombre que queremos que se vea para el servicio, depend es una dependencia del servicio, que depende de tcpip. Y start=auto indica que se arranque automáticamente al encender el ordenador.



Crear repositorios

En el directorio donde hemos indicado que estarán nuestros repositorios, podemos crear repositorios para nuestros proyectos. Para ello, vamos al directorio c:\repos y ejecutamos el comando
c:\> cd c:\repos
c:\repos> svnadmin create PROYECTO1
Esto creará un repositorio PROYECTO1



Usuarios en subversion

Hay muchas formas de crear usuarios para subversion, incluyendo el que coja los de Windows. Sin embargo, una forma fácil de hacerlo es la siguiente.
Vamos al repositorio de PROYECTO1 recién creado y editamos el fichero conf/svnserve.conf. Por defecto viene con un montón de comentarios, pero en los que podemos leer claramente todas las opciones. Podemos dejar algo como esto
anon-access = read
auth-access = write
password-db = passwd
realm = PROYECTO1
Donde
  • anon-access = read indica permisos de lectura para usuario anónimos. Es decir, cualquiera podría sacar los fuentes para verlos, pero no podría subir los cambios.
  • auth-access = write indica permisos de lectura y escritura para usuarios autentificados.
  • password-db = passwd es el fichero donde estarán los nombres de usuario y passwords. En este caso, el fichero se llamará passwd y el path es relativo al fichero svnserve.conf que estamos editando.
  • realm = PROYECTO1 es el nombre que verán los usuarios cuando intenten acceder al repositorio y se les pida usuario y password. Puede ser cualquier palabra o frase que queramos. También se usará como clave para cifrado si corresponde.
Podemos dejar annon-acces = none para no dar ningún permiso a usuario anónimos.
Luego, editamos el fichero passwd que se crea por defecto (o el que hayamos indicado en password-db = passwd), lo editamos y ponemos los usuarios que queramos, de esta manera
[users]
chuidiang = la-password
federico = otra-password
juana = mas-passwords

Grupos en subversion

Si en el fichero svnserve.conf ponemos también una línea así
authz-db = authz
estamos indicando un fichero en el que podemos meter a los usuarios en grupos y en los que podemos dar permisos a cada grupo o usuarios a determinados directorios. Por ejemplo, suele ser una forma habitual de trabajo tener en el repositorio tres directorios: trunk, branches y tags.
  • trunk es la rama principal de desarrollo. Una forma de trabajo es que haya una persona responsable de esta rama y que garantice que es siempre estable. Esa persona puede ser la única con permisos de escritura en ella y recibir los cambios de los demás desarrolladores. Sólo el puede escribir, aunque todos los demás podrían leer.
  • branches y tags son para ramas secundarias y etiquetas. En la forma de trabajo anterior, los desarrolladores deben crearse su propia rama a partir de la principal y desarrollar en la rama. Cuando terminan, avisan al responsable de la rama principal para que prueba y lleve a ella los cambios realizados. Se puede dar permisos de escritura a este directorio branches a todos los desarrolladores.
El fichero authz puede contener cosas como esta
[groups]
administradores = chuidiang
desarrolladores = federico,juana

[/trunk]
@administradores = rw
@desarrolladores = r
* = 

[/branches]
@administradores = rw
@desarrolladores = rw
* =
donde:
  • En [groups] se definen los grupos, poniendo nombre de grupo igual a los desarrolladores separados por comas.
  • Se ponen tantas secciones [/path] como se quiera y en ellas se pone
    • @nombre_grupo = permisos. Pueden ser rw, r o nada si no se quieren dar permisos
    • nombre_usuario = permisos.
    • * = permisos para el resto.

Comentarios

Entradas populares de este blog

Subir proyecto al repositorio existente en Bitbucket

Sonarqube : The component parameter is missing