Trabajo de Entornos de Desarrollo

CONTROL DE VERSIONES

Trabajo de Entornos de Desarrollo

Trabajo de Entornos de Desarrollo.   

 

CONTROL DE VERSIONES

Realizado: Emilio Sedano Gijón

Resumen de lo que es un Control de  Versiones………………………………………….……………….1.1

Objetivos de un control de versiones………………………………………………………………..…..1.2

Porque utilizar el control de Versiones……………………………………………………………….….1.3

Tipos de control de Versiones existentes hoy día………………………………………………………1.4

Comandos y operaciones básicas……………………………………………………………………..1.5

Instalación de uno de ellos………………………………………………………………………..…….1.6

Instalación de una de estas en un entorno de desarrollo………………………………………..……1.7

Ventajas y Desventajas………………………………………………………………………..………….1.8

Conclusiones……………………………………………………………………………………….…..…1.9

Bibliografías………………………………………………………………………………………………….2.0

 

  • Introducción Trabajo de Entornos de Desarrollo

 

El desarrollo de software no es una tarea exclusivamente individual. En la gran mayoría de los proyectos tanto Open Source como privados es necesario trabajar en equipos en donde son varios los desarrolladores que acceden al mismo código fuente.

Coordinar las modificaciones al código de una forma manual es una tarea importante, sobre todo en proyectos muy complejos o con una gran cantidad de desarrolladores.

Uno de los objetivos de CVS es proveer una herramienta que permita mezclar distintos cambios al código para consolidar un código único final de una forma segura, siempre que sea posible.

Otro de las funciones que cumple una herramienta como CVS es mantener un registro de los cambios que se hacen al código fuente. De tal forma que se tenga acceso a todo el historial de cambios del proyecto. Esta característica permite volver a versiones anteriores, encontrar defectos introducidos y mantener un mismo proyecto en una versión «estable» y «en desarrollo» a partir de un solo repositorio común.

Estas capacidades son de vital importancia en proyectos Open Source, en donde los desarrolladores están separados geográficamente y temporalmente. Sin embargo las mismas prácticas son también aplicables a proyectos privados

1.1 Que es un control  de Versiones.

Realmente un control de versiones es la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo.

Una versión, revisión o edición de  un producto, es el estado en el que se encuentra dicho producto en un momento dado su desarrollo o modificion.

por ejemplo programas informáticos, documentación, gráficos de procedimientos, monografías y cartas. RCS también puede ser utilizado para manejar archivos binarios, pero con eficacia y eficiencia reducidas. Las distintas versiones son archivadas mediante la ayuda de la herramienta diff.

Aunque un sistema de control de versiones puede realizarse de forma manual, es muy aconsejable disponer de herramientas que faciliten esta gestión dando lugar a los llamados sistemas de control de versiones o SVC (del inglés System Versión Control). Estos sistemas facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico). Ejemplos de este tipo de herramientas son entre otros: CVS, Subversión, SoureSafe, ClearCase, Darcs, Bazaar , Plastic SCM, Git, Mercurial, Perforce.

1.2 Objetivos de un control de Versiones.

  • Establecer una política de implementación de nuevas versiones de hardware y software.
  • Implementar las nuevas versiones de software y hardware en el entorno de producción tras su verificación en un entorno realista de pruebas.
  • Garantizar que el proceso de cambio cumpla las especificaciones de la RFC
  • Asegurar, en colaboración con la Gestión de Cambios y Configuraciones, que todos los cambios se ven correctamente reflejados en la CMDB.
  • Archivar copias idénticas del software en producción, así como de toda su documentación asociada, en la Biblioteca de Software Definitivo (DSL).
  • Mantener actualizado el Depósito de Hardware Definitivo (DHS).

1.3  Porque crear el control de versiones (Beneficios).

Los beneficios de una correcta Gestión de Versiones se resumen en:

  • Las nuevas versiones cumplen los objetivos propuestos.
  • Se reduce el número de incidentes por incompatibilidades con otro software o hardware instalado.
  • El proceso de pruebas asociado no sólo permite asegurar la calidad del software y hardware a instalar sino que también permite conocer la opinión de los usuarios sobre la funcionalidad y usabilidad de las nuevas versiones.
  • El correcto mantenimiento de la DSL impide que se pierdan (valiosas) copias de los archivos fuente.
  • Se reduce el número de copias de software ilegales.
  • Control centralizado del software y hardware desplegado.
  • Protección contra virus y problemas asociados a versiones de software incontroladas.

 

1.4 Tipos de control de versiones existentes hoy en día.

Hasta ahora, los dos sistemas de control de versiones más populares en el mundo del software libre son Concurrente Versiones Sistema (CVS), http://www.cvshome.org/) y Subversión (SVN, http://subversion.tigris.org/).

CVS lleva largo tiempo y los desarrolladores más experimentados ya están familiarizados con él. Hace más o menos lo necesario y ya que ha sido popular durante mucho tiempo es probable que no se termine discutiendo su utilización.

Cualquier sistema de control de versiones estable y listo para entornos de producción será suficiente, no hay que preocuparse demasiado sobre tomar una decisión equivocada. Si simplemente no se puede decidir, entonces la opción es Subversión. Es relativamente fácil de aprender y es probable que se mantenga como el estándar por unos años más.

Subversión:

Subversión es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es 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 importante de Subversión es que, a diferencia de CVS, los demás archivos con versionamiento 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 un instante determinado del repositorio que se está trabajando.

Subversión puede acceder al repositorio a través de redes, lo que le permite ser usado por personas que se encuentran en distintas computadoras. A cierto nivel, la posibilidad de que varias personas puedan modificar y administrar el mismo conjunto de datos desde sus respectivas ubicaciones fomenta la colaboración. Se puede progresar más rápidamente sin un único conducto por el cual deban pasar todas las modificaciones. Y puesto que el trabajo se encuentra bajo el control de versiones, no hay razón para temer por que la calidad del mismo vaya a verse afectada —si se ha hecho un cambio incorrecto a los datos, simplemente deshaga ese cambio.[2

 

 

1.5 Comandos u Operaciones básicas a la hora de cambiar de Versiones.

Repositorio

En la parte de servidor de CVS se maneja un repositorio. Un repositorio es simplemente un directorio en el servidor que contiene diversos módulos. Por ejemplo, un proyecto podría tener un repositorio, y en cada modulo estarían los subproyectos.

A su vez, cada modulo contiene un conjunto de archivos, y representa al proyecto con el que se quiere trabajar. Por ejemplo en sitios grandes como sourceforge, cada uno de los proyectos tiene su propio repositorio CVS, y cada uno de ellos tiene uno o más módulos de trabajo. Cuando un desarrollador trabaja con CVS lo hace a nivel de modulo.

Para conectarse al servidor se pueden usar distintos tipos de protocolos, sin embargo los más extendidos son «pserver» para acceso anónimo o algún tipo de acceso en donde la seguridad no es importante. El otro es ssh, y se usa en casos más críticos, por ejemplo cuando se requiere acceso para poder realizar cambios al repositorio.

Para que un directorio pueda ser utilizado como repositorio CVS, lo primero que se debe hacer es decirle a CVS que genere los archivos y subdirectorios necesarios para funcione como tal. Podríamos crear un repositorio con los siguientes comandos:

Primero creamos un grupo especial para que pueda hacer cambios en CVS

Una vez descargada, la ejecutamos e instalamos. Ahora hay que crear los repositorios, para ello:

  • Abrimos una consola (Menú inicio -> Ejecutar -> CMD).
  • Creamos una carpeta de repositorio, la crearemos en la unidad C:
    • CD \
    • mkdir svnrepo
    • cd svnrepo
    • Ahora crearemos una carpeta en el repositorio para los proyectos.
    • svnadmin create java

Ya hemos acabado la primera fase. Ahora procedemos a realizar la integración con Eclipse.

 

Necesitamos instalar el plugin Subclipse. Desde la web, en la sección Download and Install obtenemos las url necesarias para su instalación en Eclipse, vienen denominadas como «Eclipse update site URL«.

 

Con esa url, abrimos eclipse y hago lo siguiente:

  • Pinchamos en Help -> Install New Software.
  • Presiono el botón ADD
  • Pongo lo siguiente en los campos:
    • Name: Subclipse
    • Location: http://subclipse.tigris.org/update_1.8.x
  • Presiono OK
  • Marco los paquetes que se recuperan del servidor y procedemos a su instalación.
  • Eclipse se reiniciará.

Ahora ya podemos poner los proyectos que queramos en el repositorio. Para ello, pinchamos con el botón derecho en el título del proyecto que queramos dentro del navegador de paquetes de eclipse (Package Explorer) y seleccionamos: Team -> Share Project

 

Saldrá una ventana que nos ofrece la posibilidad entre usar CVS y SVN. Seleccionamos SVN y le damos a continuar (Next).

 

Ahora la aplicación nos ofrece la posibilidad entre usar un repositorio existente (si es que tenemos) o crear uno nuevo. En nuestro caso dado que estamos creando uno nuevo, optaremos por la crear uno nuevo (Create a new repository location). Le damos a Next.

 

Ahora nos pide la URL del repositorio. Como estamos usando un repositorio local, utilizaremos el protocolo file:// e introduciremos el path completo hasta el repositorio. En mi caso tengo que introducir: file:///C:/svnrepo/java

 

El proyecto se creará en el repositorio, puede que eclipse quiera cambiar el modo de vista a colaborativo; yo prefiero no cambiarlo.

 

Ahora hay que decidir qué carpetas introducimos. Por ejemplo la de las fuentes de las aplicaciones, en mi caso src. Para ello pincho con el botón derecho en la carpeta y le damos a Team -> Commit.

 

Ponemos un comentario y aceptamos el commit. Ya disponemos de esas carpetas en el repositorio y podemos agregar versiones nuevas, comparar con antiguas y todas las ventajas que ofrece un sistema de control de versiones como SVN. A partir de aquí recomiendo leer un poco la documentación de SVN para los que no hayáis trabajado con él previamente.

 

1.6 Instalación de uno de ellos.

Lo primero que tenemos que hacer es descargarnos Eclipse desde Linux.

Lo siguiente será abrirlo y meternos en Subversive SVN Team provider y lo descargamos.

Una vez terminada la instalación ya tendremos Eclipse y Subversive.

Tendremos que abrir el programa y crearnos un proyecto y lo guardamos en SVN .

Lo siguiente nos creamos el repositorio con Créate a new reposity locación.

Lo siguiente introducir abajo la URL donde se encuentra el repositorio, y seleccionamos el modo

avanzado y siguiente.

Ya por ultimo introduciremos un comentario para la operación de conmit que se va hacer en el

repositorio SVN y seleccionamos Finish.

Y ya tendremos Eclipse configurado para hacer un control de versiones

1.7 Instalación de Eclipse en Linux.

Nos vamos a Centro de software de Ubuntu y desde allí ponemos Eclipse.

Y le damos a instalar.

Una vez la tengamos instalado podemos hacer lo mencionado en el punto anterior para la instalación de SVN en Eclipse algo sencillo y rápido.

1.8 Ventajas y desventajas del Control de Versiones.

 

Ventajas

Es gratis.

Permite la concurrencia del trabajo.

Variedad de clientes a escoger.

Manejo de múltiples versiones simultaneas.

Desventajas

El protocolo no soporta eliminación de directorios o renombrados.

Depende de la implementación de los clientes.