En este tutorial haremos una explicación sobre Subversion en sí este te permite administrar proyectos complejos desde una sola persona a muchas personas, ahora según wikipedia:
"Subversion es un sistema de control de versiones, software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de comando.
Una característica de Subversion es que todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en un instante determinado del repositoro que se esta trabajando. Se puede acceder al repositorio a través de redes, lo que le permite ser usado por personas que se encuentran en distintas computadoras y con la posibilidad de que varias personas puedan modificar y administrar el mismo conjunto de datos desde sus respectivas ubicaciones fomenta la colaboración."
Ahora que hemos entendido que es un Subversion nos iremos a nuestra terminal y teclearemos:
svn --version
Esto nos sirve para saber si tenemos instalado el Subversion y sí es así, que version tenemos.
En caso de no tenerlo instalado debemos de teclear los siguiente.
Para Mac OS X:
Con MacPorts
sudo port install subversion
Con Fink
sudo fink install svn-client
Para Ubuntu:
sudo apt-get install subversion
Para comenzar a crear un repositorio e inicializarlo necesitamos hacer lo siguiente.
mkdir /var/share/svn/Repositorio
svnadmin create /var/share/svn/Repositorio
En la cual creamos una carpeta llamada Repositorio, para después crear con los comandos de Subversion un nuevo repositorio para nuestro sistema de control de versiones.Tiene que estar dentro de /var/share/~ para que este pueda ser compartido con los usuarios.
Una vez hecho lo anterior pasaremos a modificar dentro de la carpeta creada encontraremos otra carpeta llamada conf, donde encontraremos a svnserve.conf el cual descomentaremos lo siguiente.
anon-access=read //Acceso anónimo con permiso a lectura
auth-access=write //Acceso de autentificación con permiso a escritura
realm= My First Repository //Nombre del repositorio
password-db=passwd //Toma password de default
Con lo visto, tenemos que resaltar que ya no es necesario entrar a esta carpeta, ya que existe un comando llamado svn checkout que nos importa en una carpeta que hayamos creado un proyecto, esto lo veremos mas adelante.
Subversion usa los directorios como unidad básica de organización, el cual divide el repositorio en diferentes proyectos.Por conveniencia todas las subversiones de los proyectos deben de tener directorios llamados trunk(tronco), tags(etiquetas) y branches(ramas).Como por ejemplo:
- /Proyecto1/trunk
- /Proyecto1/tags
- /Proyecto1/branches
- /Proyecto2/trunk
- /Proyecto2/tags
- /Proyecto2/branches
Donde
trunk es un directorio donde se hacen todas las acciones principales del desarrollo y es el directorio que vas a verificar si tu quieres trabajar en el proyecto.
El directorio
tags es usado para capturar pequeñas capturas del proyecto, por ejemplo cuando liberan una nueva producción de algún tipo de componente, el equipo etiquetará el código que será liberado.Esto ayuda al equipo cuando encuentra un error en el código y encontrar la posible solución a ello.
El directorio
branches es usado cuando quieres seguir diferentes líneas de desarrollo, el desarrollo en esta carpeta se centra en el desarrollo estable mientras que en la carpeta de
trunk se utiliza para desarrollo de nuevas funciones.
Para crear un directorio base para nuestro proyecto hacemos lo siguiente.
svn mkdir /usr/share/svn/proyecto
Para crear las carpetas
trunk,
tags y
branches.
svn mkdir /usr/share/svn/proyecto/trunk
svn mkdir /usr/share/svn/proyecto/tags
svn mkdir /usr/share/svn/proyecto/branches
Para importar algún directorio de un proyecto ya existente hacemos esto.
svn import URL o Ruta
Para empezar con una copia de un proyecto hacemos.
svn checkout URL o Ruta
Para ver el estado de cada archivo necesitamos saber que es cada letra de indicación, entre las que tiene Subversion son las siguientes:
A Se agregó en tu copia de trabajo.
C Existe un conflicto por un update o una combinación.
D Eliminado en tu copia de trabajo.
G Combino cambios desde un repositorio
I Ignorado desde tu copia de trabajo.
M Modificado en tu copia de trabajo.
R Reemplazado en tu copia de trabajo.
? No está bajo en control de versiones.
! Se olvido algo desde tu copia de trabajo o esta incompleto
Para ver que archivos fueron cambiados en tu copia de trabajo.
svn status
*Tienes que estar dentro de la carpeta donde tienes la carpeta de trabajo.
Y veremos algo como esto.
Donde se dice que se agregó hola.py y prueba en la copia de trabajo.
Para ver como nuestros archivos han cambiado.
svn diff
*De igual manera tienes que estar dentro de la carpeta de trabajo.
Y veremos algo como esto.
Donde los "+" indican que se han agregado algunas líneas nuevas al archivo, el "-" indica que han sido removido esas líneas.Sí huvieron cambios severos veremos una gran cantidad de mas y menos.
Ahora para enviar un archivo modificado hacemos lo siguiente.
svn add archivo
*Tenemos que estar en la carpeta de trabajo.
Para hacer un update de las modificaciones hechas hacemos lo siguiente.
svn commit archivo
Y veremos algo como esto.
Para eliminar algún archivo.
svn delete archivo
Y después hacemos un "svn commit archivo" como en lo anterior.
Para renombrar un archivo.
svn mv archivo archivomodificado
Luego de eso hacemos un "svn commit archivo".
Para modificar un archivo.
svn mv ruta/proyecto/algo.py src/app/proyecto/
Y después hacemos un commit.
Para la siguiente semana hablaremos sobre el uso de Rever, Blame, Manejar conflictos y hacer update.
Nominación de la semana:
-Sergio Hernández apoyo moral
-Pedro por su entrada sobre Brenchmarks
-Victor por su intento de Geekbench
-Alex por su explicación de Malla
-Avendaño por su explicación Malla
-Obed por su expliación de PVM