comparativa-git

Hoy voy a presentaros lo que hoy día son los sistemas de control de versiones más usados por los desarrolladores (sólo algunos…) y sus principales características. Allá vamos!

SourceForge

Se trata del inicio de todo (en lo que a este tema respecta, claro), el padre de todos los servicios de alojamiento para el control de versiones online. Datándose en 1999 fue el primer sitio web open source de este tipo. El código fuente del software de SourceForge estaba a disposición del público durante los primeros años, hasta que en 2001 no se volvieron a lanzar revisiones “oficiales” del mismo.

No obstante, con el paso de los años y a pesar de no liberar nuevas versiones de su código, sus desarrolladores no han dejado de añadir funcionalidades más allá del sencillo gestor de versiones, como son el seguimiento de errores, Pull Request, mirrors para una gestión de descarga más veloz… Proporcionando al público y sus proyectos un alojamiento web gratuito y muy eficaz.

Hoy día soporta los principales sistemas de control de versiones existentes (CVS, SVN, Git…) obteniendo sus principales ingresos de la “discreta” publicidad que insertan en sus páginas (de alguna manera se tienen que financiar ;).

Resumen:

  • El primer hosting para el control de versiones.
  • Sólo aloja proyectos open source.
  • Seguimiento de fallos.
  • Pull Request.
  • Soporte para CVS, SVN, Git y Mercurial.

GitHub

Apareciendo en el año 2008, estamos ante la que fuera primera plataforma con soporte íntegramente para Git, añadiendo la característica de los DCVS (Distributed Control Version Systems, o sistemas de control de versiones distribuidos) que aportaba flexibilidad a las muchas mejoras que había implantado Git en este sector, tentando enormemente a los desarrolladores a pasar su metodología de trabajo a Git y, claro está, a alojar sus proyectos en sus servidores para contar con mayores ventajas.

Hoy día es la plataforma más usada para la desarrollo de proyectos de código abierto (sacando mucha ventaja al resto hay que decir…). También es una plataforma mantenida por la comunidad y destinada principalmente a alojar proyectos open source, no obstante, en su modalidad de pago ofrece la característica de repositorios privados, pudiendo así contar con todas las ventajas de este software y alojamiento sin tener que compartir código alguno con dicha comunidad de desarrolladores.

GitHub proporciona también una gran cantidad de características que ayudan a que su elección sea más sencilla como la “bifurcación en un clic” (con la que podremos crear diferentes ramificaciones de nuestro proyecto con tan sólo un clic de ratón), Pull Requests, gestión de incidencias, analizador de código, administración sencilla de comentarios, etc…

El plug-in que ofrece para Eclipse es un punto añadido a todas estas ventajas, pudiendo integrar nuestra cuenta GitHub en el framework citado y subir automáticamente todos los cambios realizados. Aunque si algo hay que destacar de GitHub son sus testeos de código (haciendo uso de software como Jenkins), característica que remata una amplia lista de bondades que lo resaltan sobre la competencia, y hace casi invisible el hecho de que únicamente soporte Git y Mercurial.

Resumen:

 

  • El alojamiento más extendido en la comunidad de desarrollo.
  • Interfaz de usuario impecable.
  • Primer sitio web de soporte para Git.
  • Pull Requests, gestor de incidencias, One Click Branchs.
  • Testeos automáticos de código con software como Jenkins.
  • Totalmente gratuito para proyectos de código abierto.
  • Repositorios privados en la modalidad de pago.

 

BitBucket

Y llegamos a BitBucket, un sistema de alojamiento y control de versiones desarrollado por Atlassian y que cuenta con la mayoría de características de GitHub. Con su oferta actual de repositorios privados ilimitados y un máximo de 5 usuarios presenta hoy día una fuerte competencia a GitHub aunque su uso no esté tan extendido como lo está el sistema antes analizado.

Como características destacadas cuenta con un sistema de soporte a través de notificaciones HipChat, el seguimiento y control de errores con software Confluence y Bamboo, análisis de continuidad e integración de usuarios en diferentes proyectos, etc…

Como decía, el resto de características son muy similares a las ofrecidas por GitHub, incluso en las limitaciones, puesto que comparte el que únicamente sea compatible con Git y Mercurial.

Resumen:

  • Principal competencia de GitHub.
  • Soporte de notificaciones HipChat.
  • Repositorios privados y hasta 5 usuarios en su versión gratuita.
  • Componentes como Confluence y Bamboo.
  • Pull Requests, gestor de incidencias, One Click Branchs.

GitLab

Otra plataforma muy similar a GitHub (prácticamente la toma como base) escrita en Ruby y que cuenta con tres versiones que ofrecer: Community Edition (CE), Enterprise Edition (EE) y su versión de alojamiento en los servidores de la propia GitLab. Y si por ser la última pareciera que es poca cosa, basta nombrar algunas de las entidades que hacen uso de su software (NASA, CERN, Alibaba…) para comprender que no estamos ante un cualquiera.

Sus niveles de permisos, protección de ramificaciones, controles de autenticación, en definitiva la seguridad que ofrece tanto a usuarios como a proyectos hace que destaque sobre sus rivales de sector.

Resumen:

 

  • Una muy trabajada interfaz ofrece acceso y gestión de todas sus características desde una única pantalla (proyectos, usuarios, comentarios, estadísticas…)
  • “Snippet Support” o “soporte de fragmentos” facilita a los usuarios compartir, sugerir o añadir pequeños bloques de código sin necesidad de que el propietario comparta el proyecto al completo.
  • Protección de las ramificaciones con diferentes niveles de autorización en la realización de cambios.
  • Estrictos niveles de autenticación ofrecen un plus de seguridad en comparación con su competencia, pudiendo incluso establecer verificación en dos pasos, permisos de lectura / escritura, entre otros…
  • Permite establecer “metas” con las que el equipo de desarrollo podrá tener presente en todo momento una fecha límite, así como controlar el flujo de trabajo general.
  • La etiqueta “Work in Progress” marcará las ramas o proyectos que estén siendo modificados en tiempo real por los usuarios designados.
  • Cuenta con un eficaz sistema de notificaciones (clásicas o de tipo “push”) con el que la comunicación entre el equipo de desarrollo será mucho más fluida.

 

Espero que esta información os haya sido de utilidad.

Vía OpenWebinars

Likes Facebook y Twitter

Gracias por tú atención.