PDF de programación - subversion personal

Imágen de pdf subversion personal

subversion personalgráfica de visualizaciones

Actualizado el 9 de Abril del 2020 (Publicado el 14 de Abril del 2017)
397 visualizaciones desde el 14 de Abril del 2017
128,6 KB
8 paginas
Creado hace 16a (11/04/2004)
Subversion personal

© Rafaël Garcia-Suarez (http://rgarciasuarez.free.fr), 31 de octubre de 2002
Publicado en The O'Reilly Network (http://
www.oreillynet.com/pub/a/onlamp/2002/10/31/subversion.html)

Traducción: Quique (http://sindominio.net/quique), Enero de 2003.

Verbatim copying and distribution of this entire article is permitted in any medium,
provided this notice is preserved.
Se permite la distribución y copia literal de este artículo en su totalidad por cualquier
medio, siempre que se conserve esta nota.

Subversion es un sistema de control de versiones de código abierto,
de propósitos similares al bien conocido, ampliamente extendido, y
obsolescente CVS. Está diseñado para proporcionar un sofisticado
sistema de control de versiones, desarrollado con tecnología
moderna.

Subversion está todavía en desarrollo y no ha llegado aún a la
versión 1.0. Sin embargo, es bastante estable y ya se puede usar. En
este artículo cubriremos los aspectos básicos de Subversion, como
instalarlo, y como usar Subversion para proyectos personales. En
un futuro artículo veremos como instalar y usar un servidor
Subversion multiusuario en red.

¿Para qué sirve Subversion?
Instalación de Subversion
Creación de un repositorio
Obtención de una copia de trabajo
Órdenes básicas
Examinando sus cambios
Etiquetas y ramas
Distribución
Cosas que recordar...
Consejos y enlaces

¿Para qué sirve Subversion?

Brevemente, Subversion ayuda a que los desarrolladores lleven un seguimiento de los
cambios en los ficheros de código fuente de su proyecto. Quizá se pregunte porqué iba a
necesitar un sistema de control de revisiones para sus proyectos domésticos, donde
usted es la única persona que decide cómo y cuándo realizar cambios. Hay varias
razones: para obtener y comparar versiones anteriores, cazar errores regresivos,
mantener ramas compatibles con las versiones anteriores, producir excelentes registros
de cambios (changelogs), trabajar sobre dos arreglos o mejoras diferentes sin

confusiones. Además, conseguirá todo esto con poco esfuerzo, porque Subversion es
sorprendentemente fácil de instalar.

Un repositorio Subversion se comporta como un sistema de ficheros que recuerda
conjuntos de cambios que se le han hecho. Esto lo hace almacenando ficheros en una
estructura de árbol, llevando un control de su evolución a lo largo del tiempo. El
repositorio incrementa un número global de revisión con cada conjunto de cambios
enviados (committed) al repositorio. Como la totalidad del árbol está versioneada, actúa
como un sistema de ficheros normal. Es posible copiar y renombrar ficheros; crear una
rama del proyecto es tan fácil como copiar un directorio. También se le puede pedir a
Subversion que produzca una salida con las diferencias entre dos revisiones arbitrarias,
o que recupere algún sub-árbol de la revisión N.

Instalación de Subversion

Esta sección cubre la instalación de Subversion en sistemas de tipo Unix. (También es
posible compilar e instalar Subversion en Windows. Lea el fichero INSTALL de la
distribución de Subversion). Para instalar Subversion, quizá tenga que actualizar (o
instalar) algunas de las herramientas de su sistema (autoconf, libtool, python2).
Necesitará también la biblioteca de análisis sintáctico de XML expat. Para información
detallada, lea la sección BUILD REQUIREMENTS del fichero INSTALL. Subversion está
totalmente construído con componentes de código abierto.

Subversion requiere también una versión reciente de Berkeley DB. Asegúrese de echar
un vistazo a los ficheros README e INSTALL para estar seguro de que tiene la versión
correcta. (En el momento de escribir esto, servía Berkeley DB 4.0.14). Subversion usa
esta base de datos como el almacenamiento subyacente de sus repositorios. La puede
conseguir en Sleepycat Software.

Las instantáneas (snapshots) de Subversion, disponibles en el sitio principal de
subversion, incluyen todas las otras bibliotecas necesarias para instalar un repositorio
local. Montar un servidor Subversion accesible a través de la red requiere Apache 2,
pero eso es otro artículo. El fichero INSTALL explica también como obtener un nuevo
Subversion `fresco' del repositorio (sí, los desarrolladores de Subversion usan su propio
software), pero eso no es necesario en absoluto, pues Subversion se está volviendo cada
vez más estable. Nosotros usaremos una instantánea. En el momento de escribir esto, el
número de versión de la última instantánea es el 3578 (también conocida como
Subversion 0.14.5), pero llamémoslo XXXX.

El desarrollo de Subversion es rápido. Para hacer más fáciles las actualizaciones,
instalaremos Subversion en su propio subdirectorio. También daremos por supuesto que
usted necesita instalar la versión apropiada de Berkeley DB. Las órdenes precedidas por
una almohadilla (#) deben ejecutarse como root. (Si no tiene acceso a root, instale
Subversion en su directorio home en vez de usar /usr/local como se hace en los
ejemplos posteriores).

# mkdir /usr/local/subversion-rXXXX
# ln -s /usr/local/subversion-rXXXX /usr/local/subversion

$ gunzip -c db-4.0.14.tar.gz | tar xf -
$ cd db-4.0.14/build_unix

$ ../dist/configure --prefix=/usr/local/subversion-rXXXX
$ make

# make install

Asegúrese de que su sistema puede encontrar las bibliotecas en
/usr/local/subversion/lib. Generalmente esto se consigue estableciendo el
equivalente en su sistema a la variable de entorno LD_LIBRARY_PATH. En GNU/Linux,
también puede añadir esta ruta a su fichero /etc/ld.so.conf y ejecutar
/sbin/ldconfig. Después, compile Subversion:

$ gunzip -c subversion-rXXXX.tar.gz | tar xf -
$ cd subversion-rXXXX
$ ./configure --with-berkeley-db=/usr/local/subversion-rXXXX \
--prefix=/usr/local/subversion-rXXXX
$ make
$ make check # opcional: ejecuta las comprobaciones

# make install

Finalmente, añada /usr/local/subversion/bin a su PATH. ¡Eso es todo!

Creación de un repositorio

El siguiente paso es crear un repositorio para almacenar sus ficheros. Yo voy a poner mi
repositorio en /home/rafael/svn, pues tengo mucho espacio libre en esta partición.

$ cd /home/rafael
$ svnadmin create svn

Ahora tengo un directorio, /home/rafael/svn, que contiene mi repositorio. No
contiene ningún fichero y el numero de revisión es 0. Solucionaré eso importando un
árbol con ficheros fuente.

Supongamos que estoy trabajando en un manipulador (frobnizer). Para crear un
directorio frobnizer en el nivel raíz del repositorio, e importar el contenido de mi
árbol /home/rafael/frobnizer, la orden apropiada es:

$ svn import file:///home/rafael/svn /home/rafael/frobnizer
frobnizer

¿Por qué el URI en la orden anterior? Las pocas órdenes de svn que necesitan tratar
directamente con un repositorio hacen referencia a él mediante un URL. Los URL
file:// hacen referencia a repositorios que se encuentran en un disco local.
Subversion soporta también los URI http:// y https:// para servidores Subversion
remotos, funcionando con Apache.

De hecho, para organizar mejor su repositorio, es preferible crear un directorio para su
proyecto, importando sus ficheros a un subdirectorio troncal. Veremos más tarde las
razones concretas para ello. En lugar de la orden anterior, utilice:

$ svn mkdir file:///home/rafael/svn/frobnizer -m 'Crear el proyecto
frobnizer'
$ svn import file:///home/rafael/svn /home/rafael/frobnizer \
frobnizer/trunk -m 'Initial import of frobnizer project'

La primera orden, mkdir, crea un subdirectorio vacío, frobnizer. También etiqueta este
cambio con el mensaje para el registro Crear el proyecto frobnizer. La segunda orden
realiza la importación como tal, añadiendo su propio mensaje al registro.

Puede crear tantos repositorios como guste. Si trabaja en varios proyectos diferentes, no
relacionados entre sí, puede querer repositorios independientes para cada uno de ellos.
Esto le permitirá manejarlos y moverlos por separado más adelante.

Obtención de una copia de trabajo

No se trabaja directamente en el repositorio. Para hacer cambios en sus ficheros, debe
hacer una copia de trabajo del repositorio completo o de uno de sus subdirectorios. Para
hacer esto, use checkout, que se ejecuta aquí en un nuevo directorio frobwork:

$ svn checkout file:///home/rafael/svn/frobnizer
~/frobwork

Esta copia de trabajo contiene todos los ficheros que ha recuperado, y ahora puede
editarlos con seguridad. Los subdirectorios ocultos .svn también contendrán datos
sobre el estado en el lado del cliente. Estos ficheros permiten a Subversion realizar
algunas operaciones sin tratar directamente con el repositorio. Esto nos permite trabajar
desconectados incluso si el repositorio está normalmente accesible por la red.

Órdenes básicas

La mayoría de las órdenes de svn no usan el URI del repositorio, sino que actúan sobre
la copia de trabajo local. La forma más general de una orden de svn es:

$ svn <orden> [<opciones>]
[<objetivos>]

donde objetivos es la lista de ficheros o directorios sobre los que operar, y opciones
es una lista de parámetros, en el estilo habitual de la mayoría de los interfaces de línea
de órdenes de Unix. En la mayoría de las órdenes de svn, objetivos es por defecto el
directorio actual, y la orden opera recursivamente sobre cada directorio que procesa.

La primera orden que veremos es svn commit (también conocida como svn ci, que
debería resultar familiar a los usuarios de CVS). Ésta envía las modificaciones de los
ficheros locales al repositorio. Por ejemplo,

$ svn commit *.c include

comprobará recursivamente si han sido modificados todos los ficheros .c en el directorio
actual y todos los ficheros en el subdirectorio include, y los incorporará al repositorio.
Sólo se incluirán en el conjunto de cambios los ficheros que hayan sido modificados.

Como consecuencia de esto, un simple

$ svn commit

envía todos los ficheros modificados que haya en el directorio actual y en sus
subdirectorios.

Tenga en cuenta que Subversion necesita un mensaje para el cuaderno de bitácora
cuando se envían cambios. Puede ind
  • Links de descarga
http://lwp-l.com/pdf2805

Comentarios de: subversion personal (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad