viernes, 9 de septiembre de 2011

Lo básico de Subversion en Debian Squeeze

Hola. Subversion (SVN) es un sistema de control de versiones que a los programadores nos hace el desarrollo de una aplicación un poco más sencillo ya que cuentas con un respaldo de tu proyecto, tienes versiones de tu proyecto, ya no hay pretextos para el trabajo en equipo.

Este post sirve de recordatorio rápido sobre lo básico de SVN, hasta abajo dejo los enlaces en los que me basé por si alguien quiere profundizar en el tema.

Primero vamos a instalar SVN en nuestro servidor con Debian Squeeze:

# apt-get install subversion
ahora creamos el repositorio:
$ mkdir /home/USUARIO/repositorio
$ svnadmin create /home/USUARIO/repositorio/
asignamos permisos al repositorio:
# addgroup desarrollo
# adduser USUARIO desarrollo
# chown -R www-data:desarrollo /home/USUARIO/repositorio/*
# chmod -R g+w /home/USUARIO/repositorio/*
preparamos la carpeta del proyecto para nuestro primer import:
$ mkdir /home/USUARIO/proyecto
$ mkdir /home/USUARIO/proyecto/branches
$ mkdir /home/USUARIO/proyecto/tags
$ mkdir /home/USUARIO/proyecto/trunk
creamos Hola Mundo SVN:
$ nano /home/USUARIO/proyecto/trunk/HolaMundoSVN.java
le ponemos cualquier cosa y guardamos:
public class HolaMundoSVN{
 
 public static void main(String ... args){
  System.out.println("Hola mundo de SVN"); 
 }
  
}
hacemos nuestro primer import:
svn import /home/USUARIO/proyecto/ file://localhost/home/USUARIO/repositorio  -m "Mi primer import"
y debemos ver algo como esto:
Añadiendo      /home/USUARIO/proyecto/trunk
Añadiendo      /home/USUARIO/proyecto/trunk/HolaMundoSVN.java
Añadiendo      /home/USUARIO/proyecto/branches
Añadiendo      /home/USUARIO/proyecto/tags

Commit de la revisión 1.

Hasta aquí todo se hizo en el servidor, ahora vamos a realizar un checkout en nuestra máquina local, osea bajarnos el proyecto:
$ mkdir /home/USUARIO_LOCAL/CopiaProyecto
$ svn co svn+ssh://USUARIO@DOMINIO.ALGO/home/USUARIO/repositorio/ /home/USUARIO_LOCAL/CopiaProyecto/
introducimos el password y el servidor debería responder algo como esto:
A     /home/USUARIO_LOCAL/CopiaProyecto/trunk
A     /home/USUARIO_LOCAL/CopiaProyecto/trunk/HolaMundoSVN.java
A     /home/USUARIO_LOCAL/CopiaProyecto/branches
A     /home/USUARIO_LOCAL/CopiaProyecto/tags
Revisión obtenida: 1

Hace falta realizar la operación de commit (comprometer cambios, subir cambios hechos de manera local al servidor):
$ svn commit -m "Comentario sobre lo añadido/modificado"
Si llegamos a tener un problema como este:
Enviando       trunk/HolaMundoSVN.java
Transmitiendo contenido de archivos .svn: Falló el commit (detalles a continuación):
svn: attempt to write a readonly database
svn: attempt to write a readonly database
ejecutamos lo siguiente en el servidor:
# chown www-data:desarrollo repositorio/db/rep-cache.db
Y por último vamos a hacer un update (actualizar nuestra copia local, bajarnos los cambios del servidor):
$ svn update
Hasta aquí lo básico, para otro post dejamos conectarnos desde el netbeans, montar una interfaz web para svn, https.

Enlaces relacionados:

Buenas Prácticas de Gestión de Versiones con Subversion
Crear un repositorio Subversion
Instalando un repositorio de Subversion
  

0 comentarios:

Publicar un comentario