Instalación de subversion en Centos

Vamos a montar un servidor de SVN que nos servirá más adelante para probar Jenkins.

Lo primero, instalar el servidor. Esta es la parte fácil:

yum -y install subversion

Con esto lo tenemos listo 😀

El siguiente paso va a ser crear un repositorio de proyectos y el primer «proyecto» de ejemplo.

mkdir -p /var/svn/repos/HolaMundo
svnadmin create /var/svn/repos/HolaMundo
svn mkdir file:///var/svn/repos/HolaMundo/trunk -m "create"
svn mkdir file:///var/svn/repos/HolaMundo/branches -m "create"
svn mkdir file:///var/svn/repos/HolaMundo/tags -m "create"

Esto nos crea una estructura de directorios con la rama principal (trunk), ramas de desarrollo paralelas que volverán al trunk, y copias de código que deben ser inmutables a las que se le pone una etiqueta para saber qué es. (http://stackoverflow.com/questions/16142/what-do-branch-tag-and-trunk-mean-in-subversion-repositories)

Ahora, con estos directorios creados, ya podemos arrancar el servidor de SVN:

systemctl start svnserve
systemctl enable svnserve

Con esto arrancamos el servidor y haremos que arranque como servicio en cada reinicio de la máquina.

Sólo nos queda el control de acceso a los repositorios. Para esto, vamos a crear roles y usuarios por cada proyecto:

vi /var/svn/repos/project/conf/svnserve.conf

En este fichero, vamos primero a eliminar el acceso anónimo:
[general]
anon-access=none

Por simplicidad, vamos a crear una "base de datos" de usuarios y la lista de roles en ficheros:

password-db=passwd
authz-db=authz

Ahora a crear los ficheros

vi /var/svn/repos/HolaMundo/conf/passwd

[users]
admin=passdeadmin
user=passdeusuario
guest=guest


vi /var/svn/repos/project/conf/authz

[groups]
dev=admin,user
[/]
@dev=rw
[/trunk]
guest=r

Con este contenido tendremos tres usuarios, admin y user que serán desarrolladores con acceso a todo el arbol con lectura y escritura, y guest, que sólo puede leer de /trunk

Lo primero que vamos a hacer es crear una working copy del proyecto, que en un principio no tiene nada (está recien creado):

svn co svn://localhost/repos/HolaMundo
 Authentication realm: <svn://localhost:3690> 90cf9cda-763a-485b-b892-2f6b0b2782f2
 Username: admin
 Password for 'admin':
A HolaMundo/branches
A HolaMundo/tags
A HolaMundo/trunk
Checked out revision 3.

ya podemos entrar en el directorio trunk y creamos un fichero de texto con cualquier contenido, por ejemplo HolaMundo.txt. Una vez lo tengamos listo, lo añadiremos al control de versiones del subversion y haremos un commit para que se guarden los cambios. Ojo, si no tenemos la variable de entorno EDITOR definida, puede que nos dé un casque. La operación commit va a editar un fichero que va a llevar una descripción de la revisión que estamos subiendo.

svn add HolaMundo.txt
A HolaMundo.txt
svn commit

Nos aparece (al menos en mi caso, el $EDITOR es vi), añadimos al principio una descripción de la subida que estamos haciendo y grabamos

Pimera subida al svn
--This line, and those below, will be ignored--

A trunk/HolaMundo.txt
~
~
~

Al guardarlo nos pide un usuario y una password, tendremos que usar un usuario con permiso de escritura:

svn commit
Authentication realm: <svn://localhost:3690> 90cf9cda-763a-485b-b892-2f6b0b2782f2
Password for 'admin':


Adding HolaMundo.txt
Transmitting file data .
Committed revision 4.

con esto tenemos en SVN la primera versión de «código» del proyecto.

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *