sábado, 13 de junio de 2009

Investigacion de Las Herramientas de Integracion

SUBVERSION


COMANDOS DE SUBVERSION


Exportando una copia del proyecto con el que se va a trabajar (co = chekout)


svn co http://www.webProyecto.com/repositorios/svn/fuentes /dir/local


Esto copiar los archivos que se encuentran desde el repositorio de la pagina web indicada y los copiara en un dirección local de nuestro sistema. Una vez ejecutado el comando la vemos q la salida empieza a enumerarse cada uno de los archivos contenidos en el proyecto con la letra A antepuesta indicando que se ha aniadido.


Manejo de ficheros

ADD:
Comando para crear ficheros dentro de nuestro repositorio.

svn add /ruta/local/de/nuestro/fichero


CP:
Comando para copiar ficheros dentro de nuestro repositorio.

svn cp /ruta/local/de/nuestro/fichero


MV :
Comando para mover ficheros hacia nuestro repositorio.

svn mv /ruta/local/de/nuestro/fichero


RM:
Comando para eleiminar ficheros de nuestro repositorio.

svn rm /rutua/local/de/nuestro/fichero


STATUS:
Comando para verificar el estatus de nuestro repositorio.


svn status


Este comando muestra una lista de los archivos modificados o no del repositorios los cuales los identifica con una letra para identificar que tipo de modificación ha sufrido, por ejemplo la letra A indica que el fichero ha sido añadido al repositorio, una letra D si ha sido eliminado el fichero, M si el fichero ha sido modificado o _M si el fichero ha sido modificado con respecto a sus propiedades, también ? si el fichero existe en la copia local, pero no en el repositorio, ! si el fichero existe en el repositorio pero no en la copia local.


REVERT:
Revierte la modificación que se hay realizado en un fichero.

svn revert fichero


UP:
Actualiza los cambios en el repositorio.

svn up

El cual al igual que el comando status nos mostrara una lista con los ficheros denotandolos con una letra, además adicionando nuevas letras con diferentes significados, por ejemplo U el fichero que no habíamos cambiado es actualizado, G si el fichero modificado ha sido actualizado y unido con el anterior sin ningún problema y C si ha esta actualización ha ocurrido un problema al unirlo con la versión anterior.


RESOLVE:
Le indica a Subversion que se ha resuelto un conflicto que ocurría anteriormente.

svn resolve fichero


COMMIT:
Envía los cambios que hayamos realizado, observando primero su estatus asi como la actualización y de esta forma agregamos al repositorio los ficheros actualizados.

svn commit -m “ficheros actualizados y agregados, “

El parámetro -m sirve para escribir una descripción del commit que se esta realizando, indicando por ejemplo que cambios se han hecho ha la nueva versión.







IMPORT:
Sirve para importar nuestro código que queremos agregar inicialmente a los repositorios, para que puedan ser luego modificados por otros usuarios

svn import
file:///var/svn-repositorios/pruebas /home/daniel/NetBeans/HolaMundo Hola

en donde el primer parámetro es la ruta del repositorio y se utiliza la clausula “file” ya que el repositorio se encuentra en un directorio local a nuestro sistema, y no desde un servidor remoto en ese caso seria “http://” , el segundo parámetro es el fichero que se copiar hacia los repositorios y por ultimo el nombre de la carpeta dentro del repositorio al cual serán importados los ficheros.


CHEKOUT:
Sirve para conseguir el código que se encuentra dentro de un repositorio y copiarlo a un directorio local de nuestro sistema.

svn checkout http://localhost/Final/trunk /home/daniel/Escritorio/ProyectoSub





HUDSON:

Hudson monitor-ea reiteradas ejecuciones de trabajo sobre un proyecto de software, construye y prueba continuamente estos proyectos de software, proveyendo una fácil comunicación al momento de la integración de sistemas, logrando una mayor facilidad la integración del sistema por parte de los desarrolladores. Hudson también monitor-ea ejecuciones de trabajo externos de un proyecto de software lo que hace imprescindible para poder mantener un mejor control del sistema en desarrollo y determinar cuando algo esta mal.

Una de las cosas que destacan es que la instalación es bastante fácil así como su fácil configuración totalmente desde su interfaz gráfica en este caso su GUI WEB, haciendo que sea menos tedioso para el usuario, aparte de que cuenta con los servicios de mensajería instantánea de integración es decir que se puede recibir notificaciones en tiempo real de algún error en la construcción o pruebas del sistema de software en desarrollo así como extenderlo con PlugIns que pueden mejorar su experiencia, también cuenta con un gran soporte de Maven, lo que permite una migración rápida de los proyectos que tengamos al nuevo sistema y lo mejor que es totalmente software libre.





Alternativas a Hudson

CRUISECONTROL

Es un software libre en similitud a Hudson, con la diferencia que fue desarrollado en Java, la cual puede compilar automáticamente proyectos java utilizando al igual que Hudson utiliza la herramienta para realizar las tareas repetitivas hablo de Ant y Maven diseñado para la construcción y el control de gestionamiento de proyectos. Al igual que Hudson se basa en la Integración Continua, compilando y construyendo cada vez que se realiza un cambio en las versiones del software que se esta desarrollando, tambien cuenta con servicios de notificaciones ya sea por correo, o paginas web, su funcionamiento pasa a través de un demonio el cual continuamente busca cambios en el sistema de versiones como lo podría ser Subversion, CruisControl se forma de tres módulos principales, los cuales son La Construcción en Bucle, La Presentación de informes y la barra de instrumentos.




ANTHILL
Otra de las opciones para realizar una integración continua basados en repositorios, automatizando el ciclo de vida, reuniendo la información y monitorizando el progreso del sistema en desarrollo mientras detecta posibles erroes he incoherencias en el sistema, una de las características importantes es que construye artefactos para su reutilización en etapas posteriores del ciclo de desarrollo. Soporta lenguajes como Java, .Net, C/C++ y trabaja sobre distintas plataformas de sistemas operativos, como lo son Windows, Solaris, AIX, Mac, tiene la capacidad de construir con scripts existentes como lo son Ant, Maven, Make, MSBuild, y NAnt, etc. .

Al igual que en las anteriores herramientas anthill también cuenta con un modulo de mensajería para las notificaciones, una de las desventajas mas importantes que se pueden mencionar es que no es 100% libre sino que únicamente es libre para el desarrollo de software libre, en otra circunstancias la licencia debe ser pagada.



TABLA COMPARATIVA

Caracteristica
Hudson
CruiseControl
AntHill
Open Source
Si
Si
No
Lenguaje
Java
Java
Java
Gratuito
Si
Si
Solo Proyectos Open Source
Soporte SCM



CVS
Si
Si
Si
Subversion
Si
Si
Si
Sistema de Archivos SCM
No
Si
Si
Archivos HTTP
Si
Si
No
Gestion De Construcción



Paralelos
Si
Si
Si
Construcciónes Distribuidas
Si
Si
Si
Seguridad



Autenticación de Usuario
Si
Si
Si
Esquemas de Autorización del Usuario
Si
No
Si
Integracion LDAP
Si
No
Si
Herramientas Soportadas



Shell
Si
Si
Si
Ant
Si
Si
Si
Groovy
Si
No
Si
Maven
Si
Si
Si
Maven2
Si
Si
Si
Integraciones a IDE



Eclipse
Si
Si
Si
Visual Studio
No
Saber
Si
Gestion Remota



SOAP
No
No
Si
JMX
Si
Si
No
REST
Si
Saber
No




Justificación:
Tiene una interfaz amigable con la cual se puede trabajar cómodamente.

Es sencillo de realizar nuevos plugins.

Tiene una fácil instalación.

Aunque la configuración ha veces se complica no es motivo de menospreciar la
herramienta.

Como se vio en la tabla una de las mejores opciones es porque puede utilizar Ant y Maven.

Es un software totalmente libre.

Una desventaja si se esta trabajando con programación en .Net es que esta herramienta no trae soporte.

TRAC

Es un sistema de software escrito en phyton para el seguimiento de proyectos de sistemas en desarrollo y los errores que se puedan dar en el desarrollo de los mismos, basado en el software web de gestión de proyectos, la misión de trac es ayudar a los desarrolladores al mantenimiento del software en el proceso del desarrollo, permitiendo enlazar los errores del sistema en desarrollo que se encuentra en una base de datos y un sistema de control de versiones como lo es subversion, base de esta herramienta, utilizado también como una interfaz web para el sistema de versiones antes mencionado Subversion y otros como Git, Mercurial.

Algunas otras características importantes es que cuenta con una gestión de proyectos por ejemplo planes de trabajos, también cuenta con un seguimiento de fallos y tareas, lleva una cronologia de todas las actividades recientes, en forma de log, tiene fuentes RSS y Extensibilidad con scripts de phyton.





Alternativas a Trac

REDMINE

Al igual que Trac es un sistema de gestión de proyectos para la ayuda en el desarrollo de software y similar a trac ya que también su interfase web, en el cual se puede dar de alta a los administradores y desarrolladores según este estructurada su jerarquía del desarrollo del sistema, luego de darse de alta pueden ser realizados diagramas de grant para calendarizar mejor cada uno de los hitos del proyecto, cada pagina de inicio es diferente según el rol si es programador o jefe del proyecto, en donde los programadores tendrán una lista de tareas que tendrán a su cargo realizar, donde podrán visualiza el tiempo que le ha transcurrido hacer una tarea.

También pueden ser dados de alta los bugs es decir que pueden ser asignados también los diferentes problemas que pueda causar algún código incorrecto y que el desarrollador debe arreglarlos, también cuenta con un envío automático de correos para las distintas notificaciones con posibilidades de subir ficheros y documentos como adjuntos a las tareas, se pueden también definir otros tipos de tareas y bugs,



MANTISBT
Sistema de gestión de proyectos basado en la web bugtacking, escrito en PHP y trabaja con varios administradores de base de datos como MYSQL , MSSQL y base de datos como PostgreSQL y un servidor web, las características principales de este software es que tiene una licencia GPL, tiene una fácil instalación como trac, tiene una forma muy fácil de probar, al igual que los anteriores también es basado en web y es soportado por cualquier sistema operativo con soporte de PHP.

Cosas importantes en el manejo es que los usuarios pueden pueden monitorizar cosas especificas, cuenta con fuentes RSS, los usuarios pueden restringirse por niveles, esta disponible en 68 idiomas, cuenta con integración LDAP para las autenticaciones así como la autenticación básica de http y cuenta con varios soportes para diferentes DBMS.



TABLA COMPARATIVA
Caracteristica
Trac
RedMine
MantisBT
Open Source
Si
Si
Si
Basado en Web
Si
Si
Si
Gratuito
Si
Si
Si
Varios Proyectos
Si
Si
Si
Fuentes RSS
Si
Si
Si
Aut
LDAP
LDAP
LDAP
Dispositivos Mobiles
No
No
Si
Notifi
Si
Si
Si
Interface
Buena con Plugins
Buena
Buena


Justificación:

Cuenta con una fácil instalación.
La interfaz aunque inicialmente no es completa puede ser ayudada por un sin fin de plugins que ayudan al mejoramiento de esta.
Cuenta con notificaciones por correo.
Con los diferentes plugins se puede obtener el mejor rendimiento y performance al momento de administrar un proyecto.

No hay comentarios:

Publicar un comentario