Cintillo Institucional
Diferencias entre las revisiones 1 y 13 (abarca 12 versiones)
Versión 1 con fecha 2008-07-28 14:22:19
Tamaño: 12116
Editor: eparedes
Comentario:
Versión 13 con fecha 2008-07-28 15:38:26
Tamaño: 11331
Editor: eparedes
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 1: Línea 1:
===Sistema para el control de versiones: SVN===
== Sistema para el control de versiones: SVN ==
Línea 5: Línea 4:
El control de versiones permiten a un grupo de desarrollo, colaborar de manera organizada, evitando solapamiento de las modificaciones en los archivos, y mantener históricos de modificaciones. Acopia todos los archivos en versiones de forma centralizada, permitiendo el trabajo de cada colaborador en sus propias copias de trabajo.  El control de versiones permiten a un grupo de desarrollo, colaborar de manera organizada, evitando solapamiento de las modificaciones en los archivos, y mantener históricos de modificaciones. Acopia todos los archivos en versiones de forma centralizada, permitiendo el trabajo de cada colaborador en sus propias copias de trabajo.
Línea 24: Línea 23:
En la Fundación Cenditel esta instalado un servidor para la administración de los proyectos el cual brinda entre sus servicios un control de versiones por medio de la herramienta SVN.  En la Fundación Cenditel esta instalado un servidor para la administración de los proyectos el cual brinda entre sus servicios un control de versiones por medio de la herramienta SVN.
Línea 32: Línea 31:
{{{
Línea 34: Línea 33:



ahora si instalamos el svn:


}}}
''ahora si instalamos el svn:''

{{{
Línea 42: Línea 38:


}}}
Línea 47: Línea 41:

{{{
Línea 50: Línea 43:
}}}
{{{
Línea 52: Línea 46:


}}}
Línea 57: Línea 49:

Línea 61: Línea 51:


svn import [origen] [[http://www.sitioweb.ext/repositorio|http://svn.sitioweb.ext/repositorio]]


{{{
svn import [origen] http://svn.servidor.ext/repositorio}}}
Línea 69: Línea 55:

Línea 73: Línea 57:
{{{
Línea 76: Línea 60:
Línea 78: Línea 61:
Línea 80: Línea 62:
Línea 84: Línea 65:
Línea 86: Línea 66:
Línea 88: Línea 67:
Línea 90: Línea 68:
Línea 92: Línea 69:
Línea 94: Línea 70:
Línea 96: Línea 71:
Línea 98: Línea 72:
Línea 100: Línea 73:
Línea 102: Línea 74:
Línea 106: Línea 77:
Línea 112: Línea 82:
Línea 114: Línea 83:

                GforgeSysPath /var/local/www/repositorio

                GforgeGroupsRoot /

                GforgeAnonClause "groups.enable_anonscm >= '1'"

                GforgeReadClause "cvs_flags >= '0'"

                GforgeWriteClause "cvs_flags >= '1'"
Línea 126: Línea 84:

SVNParentPath /var/lib/gforge/svnroot
                SVNParentPath /var/lib/svnroot
Línea 130: Línea 86:
Línea 132: Línea 87:
Línea 134: Línea 88:
Línea 136: Línea 89:
Línea 138: Línea 90:
Línea 140: Línea 91:


Línea 144: Línea 92:
Línea 146: Línea 93:
Línea 148: Línea 94:
Línea 150: Línea 95:


Línea 154: Línea 96:
Línea 156: Línea 97:
Línea 158: Línea 98:
Línea 160: Línea 99:


Línea 164: Línea 100:
Línea 166: Línea 101:
Línea 168: Línea 102:
Línea 170: Línea 103:
Línea 172: Línea 104:
Línea 174: Línea 105:
Línea 178: Línea 108:
Línea 180: Línea 109:
Línea 182: Línea 110:
Línea 184: Línea 111:
Línea 186: Línea 112:
Línea 188: Línea 113:
Línea 190: Línea 114:


Línea 194: Línea 115:
Línea 196: Línea 116:




Línea 203: Línea 118:



}}}
Línea 209: Línea 121:


y se debe habilitar por medio del comando:


''y se debe habilitar por medio del comando:''
{{{
Línea 216: Línea 124:



}}}
Línea 223: Línea 128:


svn ckeckout [[http://svn.sitioweb.ext/repositorio|http://svn.sitioweb.ext/repositorio]] [destino]


{{{
svn ckeckout http://svn.sitioweb.ext/repositorio [destino]
}}}
Línea 231: Línea 133:




Clientes SVN

'''Clientes SVN'''
Línea 241: Línea 137:

Línea 245: Línea 139:

Línea 249: Línea 141:

Línea 253: Línea 143:

{{{
Línea 256: Línea 145:


}}}
Línea 261: Línea 148:

Línea 265: Línea 150:


[[
http://rapidsvn.tigris.org/issues/show_bug.cgi?id=505|http://rapidsvn.tigris.org/issues/show_bug.cgi?id=505]]

http://rapidsvn.tigris.org/issues/show_bug.cgi?id=505
Línea 272: Línea 153:


{{{
Línea 276: Línea 155:


}}}
Línea 281: Línea 158:

Línea 284: Línea 159:


{{{
Línea 288: Línea 161:


}}}
Línea 292: Línea 163:



mkdir /home/usuario/directorio.


{{{
mkdir /home/usuario/directorio
}}}
Línea 300: Línea 167:


{{{
Línea 304: Línea 169:




}}}
Línea 310: Línea 171:


{{{
Línea 314: Línea 173:


}}}
Línea 319: Línea 176:


{{attachment:gráficos1.png}}

{{attachment:grafico1.png|grafico1.png}}
Línea 327: Línea 180:

Línea 331: Línea 182:


{{attachment:gráficos2.png}}

{{attachment:grafico2.png|grafico2.png}}
Línea 339: Línea 186:
[[http://svn.fsl.cenditel.gob.ve/svn/pdsl|http://svn.fsl.cenditel.gob.ve/svn/pdsl]]

http://svn.fsl.cenditel.gob.ve/svn/pdsl
Línea 345: Línea 190:

Línea 349: Línea 192:

Línea 353: Línea 194:

Línea 357: Línea 196:

Línea 361: Línea 198:

{{{
Línea 364: Línea 200:

}}}
Línea 369: Línea 204:

Línea 373: Línea 206:

Línea 379: Línea 210:

Línea 383: Línea 212:

Línea 387: Línea 214:

Línea 391: Línea 216:

Línea 395: Línea 218:

Línea 399: Línea 220:



Línea 405: Línea 222:

Línea 409: Línea 224:

Línea 413: Línea 226:



Línea 419: Línea 228:


{{attachment:gráficos3.png}}
{{attachment:grafico3.png|grafico3.png}}
Línea 425: Línea 232:

Línea 429: Línea 234:

Línea 433: Línea 236:
{{attachment:gráficos4.png}}





























{{attachment:grafico4.png|grafico4.png}}
Línea 467: Línea 240:


{{attachment:gráficos5.png}}

De esta forma podemos utilizar de forma correcta las herramientas que se encuentran a disposición y que facilitan el desarrollo colaborativo.
{{attachment:grafico5.png|grafico5.png}}

De esta forma podemos utilizar de forma correcta las herramientas que se encuentran a disposición y que facilitan el desarrollo colaborativo

Sistema para el control de versiones: SVN

Introducción.

El control de versiones permiten a un grupo de desarrollo, colaborar de manera organizada, evitando solapamiento de las modificaciones en los archivos, y mantener históricos de modificaciones. Acopia todos los archivos en versiones de forma centralizada, permitiendo el trabajo de cada colaborador en sus propias copias de trabajo.

SVN: Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como Subversion. Proviene del muy utilizado CVS, pero con muchas ventajas. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Ventajas:

  • Se sigue la historia de los archivos y directorios a través de copias y renombrados.
  • Las modificaciones (incluyendo cambios a varios archivos) son atómicas.
  • La creación de ramas y etiquetas es una operación más eficiente.
  • Se envían sólo las diferencias en ambas direcciones, no todo el archivo.
  • Puede ser servido, mediante Apache, sobre WebDAV/DeltaV. Esto permite que clientes WebDAV utilicen Subversion en forma transparente.
  • Maneja eficientemente archivos binarios, no los trata como texto.
  • Permite selectivamente el bloqueo de archivos. Se usa en archivos binarios que, al no poder fusionarse fácilmente, conviene que no sean editados por más de una persona a la vez.
  • Cuando se usa integrado a Apache permite la autenticación por medio de Sql, ldap, Ssl.

Servidores de SVN

Existen a la disposición de los grupos de desarrollo, dentro de la Internet sitios web que permiten alojar proyectos de desarrollo colaborativo y que ofrecen dentro de sus servicios, repositorios para alojar las versiones de los archivos, por ejemplo SourceForge, Berlios, tigris, o uno dce los mas recientemente utilizados como lo son GoogleCode, etc.

En la Fundación Cenditel esta instalado un servidor para la administración de los proyectos el cual brinda entre sus servicios un control de versiones por medio de la herramienta SVN.

Creación de un servidor SVN

El sistema para el control de versiones Subversion, esta en los repositorios de las principales distribuciones para el sistema operativo Linux, por lo que teniendo una conexión a internet, y configurando una conexión con dichos repositorios, por ejemplo en Debian, modificando el archivo que se source.list que se encuentra ubicado en el directorio: /etc/apt/ podemos realizar la instalación para conformar nuestro servidor:

previamente instalamos apache

aptitude install apache

ahora si instalamos el svn:

aptitude install subversion

No se presenta mayor configuración, simplemente utilizamos el comando para crear el repositorio, que incluirá en él su tronco principal y sus ramas, ejecutando el comando:

cd /var/local/www

svnadmin create reposito

podemos subir inicialmente en él el contendio de algun directorio para que contenga la carga inicial, recuerde que los desarrolladores trabajan en su copia de trabajo en sus computadores y luego sincronizarán con el repositorio central.

Para la carga del repositorio en su fase inicial su utiliza el comando:

svn import [origen] http://svn.servidor.ext/repositorio

Observer que el acceso es por medio de una dirección URL, ya que se utiliza la potencialidad de la red internet para poder accesar a este, con lo cual previamente en el servidor debe estar instalado un servicio web, el mas comunmente utilizado es el apache y para el cual se debe configurar un virtual host, es de libre elección la autenticación por medio de busqueda de los usuarios en una base de datos, o por medio de una herramienta como webdav o ldap, o por el medio mas simple que es con password ubicados en un archivo.

se presenta a continuación un ejemplo de como podria configurar un virtual host:

<VirtualHost *>
        ServerName svn.sitioweb.ext
        ServerAdmin correo@sitioweb.ext
        DocumentRoot /var/local/www/repositorio

        <Directory /var/local/www/repositorio>
                Options         Indexes +Multiviews -FollowSymLinks
                IndexOptions    FancyIndexing \
                                ScanHTMLTitles \
                                NameWidth=* \
                                DescriptionWidth=* \
                                SuppressLastModified \
                                SuppressSize
               Order allow,deny
                allow from all
        </Directory>

        AddDefaultCharset UTF-8
        DirectoryIndex index.html

        # Subversion host configuration

        <Location /repositorio>
                ErrorDocument   404     default
                DAV svn
                SVNParentPath           /var/lib/svnroot
                SVNAutoversioning       on
                #SVNAutoversioning       off
                SVNIndexXSLT            /svnindex.xsl
                AuthType                basic
                AuthName                "Subversion User Authentication"
                #AuthUserFile            /etc/apache2/dav_svn.passwd
                Auth_PG_host            127.0.0.1
                Auth_PG_database        db_nombre
                Auth_PG_port            5432
                Auth_PG_user            db_usuario
                Auth_PG_pwd             clavedeacceso
                Auth_PG_pwd_table       tablausuarios
                Auth_PG_pwd_field       campodepassword
                Auth_PG_uid_field       campodelogin
                Auth_PG_encrypted       on
                Auth_PG_hash_type       MD5
                Auth_PG_authoritative   on
                #Satisfy                Any
                Require                 valid-user
                php_flag                engine off
        </Location>

        ErrorLog /var/local/log/svn.fsl-error.log
        CustomLog /var/local/log/svn.fsl-access.log combined
        ServerSignature Off
        #Seguridad
#       SSLEngine on
#       SSLCertificateFile /etc/apache2/ssl/test/svn.crt
#       SSLCertificateKeyFile /etc/apache2/ssl/test/clave.svn2.pem
        #SSLCertificateFile /etc/apache2/ssl/test/clave.svn2.pem
        #SSLCACertificateFile /etc/apache2/ssl/test/svn2.crt
</VirtualHost>

Este archivo debe estar en /etc/apache/site-available

y se debe habilitar por medio del comando:

a2ensite svn.sitioweb

Una vez habilitado el repositorio y asignado los permisos podemos realizar una copia de trabajo en nuestros computadores:

svn ckeckout http://svn.sitioweb.ext/repositorio [destino]

o por medio de las herramientas gráficas que se explican a continuación.

Clientes SVN

Los miembros del grupo de desarrollo, obtienen una copia para su trabajo (desarrollo y pruebas), lo cual denominamos clientes del repositorio, este puede ser sincronizado por medio de lineas de comando, o por medio de interfaz gráfica según el sistema operativo que se esta utilizando, entre los mas conocidos para usuarios de Debian, están: eSVN, RapidSVN, o los Plugin para herramientas para el desarrollo Eclipse; entre muchas otras.

Ejemplo para utilizar el RapidSVN, con un repositorio del servidor de la Fundación Cenditel, en el proyecto: “Plataforma para el Desarrollo de Software Libre".

Pasos preliminares:

Instalar el cliente desde los repositorios de Debian

aptitude install rapidsvn

para la traducción al castellano

obtenemos el archivo rapidsvn.po desde el sitio del proyecto:

http://rapidsvn.tigris.org/issues/show_bug.cgi?id=505

intalamos las heramientas gettext y poEdit

aptitude install gettext poEdit

Editamos y compilamos el archivo, (el poEdit al cerrar por configuración crea el archivo .mo)

ejecutamos la librería para incluirlo como lenguaje:

/var/lib/dpkg/info/rapidsvn.postinst rapidsvn.mo

Luego debemos crear un directorio en nuestra carpeta de usuario:

mkdir /home/usuario/directorio

para nuestro ejemplo utilizaremos “pdsl“ por lo que se debe ejecutar:

mkdir /home/usuario/pdsl

Si utilizamos gnome podemos encontrar el acceso en el menú:

Aplicaciones >> Otros >> RapidSVN

Debe aparecer la siguiente interfaz gráfica:

grafico1.png

posteriormente se crea la copia de trabajo del repositorio central, en nuestro computador. En el RapidSVN, accedamos a la opción:

Repositorio >> Comprobación

grafico2.png

Colocamos en la URL:

http://svn.fsl.cenditel.gob.ve/svn/pdsl

y en el Directorio del destino:

/home/usuario/pdsl

aceptar los cambios y obsevar que la ejecución y mensajes de resultados aparece en la parte inferior de la herramienta, si no hay ningún problema observamos que en el árbol de marcadores aparece nuestro repositorio, con todas sus ramas y el tronco principal.

Interfaz Gráfica para buscar las diferencias entre el repositorio original y la copia de trabajo:

Instalar el meld:

aptitude install meld

Configurarlo en las preferencias del RapidSVN

Ver >> Preferencias

y en la pestaña Programas de la ventana emergente

colocar las direcciones donde se encuentran los ejecutables de los programas de preferencia que se utilizarán:

Editor Estandar

/home/usuario/Komodo/bin/komodo

nuestro caso utilizaremos OpenKomodo

y para el la herramienta Diff (para encontrar las diferencias entre las versiones)

/usr/bin/meld

Ya odemos editar nuestra copia de trabajo y subir las modificaciones versionadas al nuestro repositorio en el Gforge de la Fundación Cenditel.

Para la edición ubicamos el archivo que queremos trabajar o modificar, un vez ubicado y colocados sobre él, se presiona F3 o por medio del menú desplegable, que se abre con el boton derecho elegimos la primera opción Editar.

Observe que se abre la herramienta OpenKomodo previamente seleccionada en las preferencias.

Guardamos los cambios y podemos observar el cambio de estatus en el RapidSvn, colocando la etiqueta modificado. Este es una de las grades ventajas de utilizar esas herramientas de acceso gráfico, más que las lineas de comando.

grafico3.png

Luego de la edición podemos utilizar la herramienta de comparación para buscar las diferencias:

Ubicado el archivo con el botón derecho del mouse abrir el menú desplegable y utilizar la opción Diff...

Esta opción apertura la herramienta Meld que en dos columnas nos muestra la difrencias entre dos versiones del mismo archivo la actual y la seleccionada.

grafico4.png

Luego de seleccionar la revisión observamos las diferencias entre las dos columnas o ventanas de la herramienta: línea a línea.

grafico5.png

De esta forma podemos utilizar de forma correcta las herramientas que se encuentran a disposición y que facilitan el desarrollo colaborativo

pdslsvnmanual (última edición 2008-07-28 15:38:26 efectuada por eparedes)