
En esta entrada voy a explicar paso a paso, como crear un repositorio subversion. En mi caso particular, instalo el repositorio en la máquina que hace de servidor en mi casa (en la cual muchas veces codifico), la cual tiene Ubuntu 11.04, y a la cual me voy a conectar para hacer commits/updates desde al menos otras 2 máquinas frecuentemente.
Requisitos
Asumo que se tiene un servidor Apache instalado, puesto que utilizaremos este servidor web para conectarnos via http a nuestros repositorios.
Paso a paso
1) Instalar subversion y el módulo svn para apache.
En mi caso, subversion ya venía instalado por defecto cuando instalé Ubuntu, sin embargo, de no estarlo, es lo primero que debemos hacer:
sudo aptitude install subversionLuego, instalar el módulo svn para apache:
sudo aptitude install libapache2-svn2) Grupos y permisología
Esto no es estrictamente necesario, pero 100% recomendable por cuestiones de seguridad. Crearemos un grupo, al cual agregaremos nuestro usuario y el usuario de Apache (www-data):
sudo addgroup svnsudo usermod -a -G svn marcosudo usermod -a -G svn www-dataLo siguiente que debemos crear es el archivo de acceso al repositorio. Así crearemos todos los usuarios que accederán al repositorio:
sudo htpasswd -c /etc/apache2/dav_svn.passwd marcosudo htpasswd /etc/apache2/dav_svn.passwd otro_usuarioObsérvese que a partir del segundo usuario, no se pasa el parámetro -c, puesto que ya dav_svn.passwd se encuentra creado. Por cada usuario nos pedirá una contraseña, la cual no tiene por qué coincidir con la contraseña del correspondiente usuario en el sistema (en caso de existir).
3) Modificamos el archivo de configuración
Como root, debemos editar el archivo /etc/apache2/mods-enabled/dav_svn.conf para especificar nuestros datos de configuración. El archivo se explica solo, sin embargo dejo las líneas que me interesan:
<Location /svn>
DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>Ahí especifico la ruta por la cual quiero acceder a los repositorios (en este caso http://servidor/svn), la ruta física donde se almacenarán todos los repositorios (/var/lib/svn), digo que quiero utilizar autenticación básica y especifico la ruta de dav_svn.passwd.
4) Reiniciar el servidor Apache.
sudo /etc/init.d/apache2 stopsudo /etc/init.d/apache2 start5) Creamos el directorio padre para nuestros repositorios
sudo mkdir /var/lib/svn6) Agregar proyectos
sudo svnadmin create /var/lib/svn/myprojectsudo svn mkdir -m "crear la estructura" file:///var/lib/svn/myproject/trunk file:///var/lib/svn/myproject/tags file:///var/lib/svn/myproject/branchessudo chown -R www-data:svn /var/lib/svn/myproject/sudo chmod -R g+rws /var/lib/svn/myproject/7) Comenzar a trabajar
Entramos al directorio donde tengamos los archivos actuales de nuestro proyecto (puede ser en la misma máquina u otra) y hacemos un checkout:
svn co http://server.name/svn/myproject/trunk .o en el caso de que estemos en la misma máquina, podemos utilizar:
svn co http://localhost/svn/myproject/trunk .Agregamos lo que tengamos que agregar (por ejemplo con un svn add *) y hacemos el import inicial:
sudo svn import -m "iniciando" . file:///var/lib/svn/myproject/trunk
Para hacer el import inicial, utilicé "file:///", esto fue porque estaba trabajando en el servidor directamente. Si en cambio hubiese estado en otra de las máquinas de la red, debí utilizar http y la dirección IP del servidor.
Y eso es todo. Así como creamos el proyecto "myproject" podemos crear todos los que queramos. El resto es simplemente trabajar y utilizar los comandos svn que utilizamos habitualmente.
Más información
doc.ubuntu-es: Subversion
que-mantequilla: Los 10 comandos SVN más utilizados
No hay comentarios:
Publicar un comentario