preload
feb 20

el motivo de este post, es auto-explicarme a mi mismo que es y que hace exactamente bazaar un sistema de control de versiones para código de programacion relativamente nuevo.

empezemos quizás por decir que su padre es canonical, su página web es esta y podriamos enumerar una pequeña lista de proyectos que lo usan:

  • Mailmain
  • Mysql
  • Launchpad
  • Linux Foundation

estos serían los más escandalosos o grandes y entrando un poco más en detalle podemos ver que también hay otros proyectos importantes que lo usan:

  • Apt (Debian)
  • iPython
  • Terminator
  • Planet Feed Reader

entre otros… tampoco es plan ahora de pillar y ir haciendo copy paste de lo que pone en la web de bazaar, no?

a primer golpe de vista y después de leer las diferentes formas de trabajo de bazaar, me he quedado bastante alucinado… soprendente la “moldeabilidad” que tiene!

  • permite trabajar sin la necesidad de tener un servidor para tener los repositorios alli, es decir que te permite trabajar de forma local, llevando un control de versiones sobre tu código, ideal para cuando es un proyecto en el que trabaja solo una persona y no hay recursos suficientes como para tener un control de versiones en un servidor remoto.
  • tambien permite que en la forma de trabajar comentada en el punto anterior, alguien te pueda echar una mano, pero sin la necesidad de tener un servidor, con un sistema parecido al de los programas peer-to-peer permite que se intercambie la información y que se pueda llevar el control de versiones entre el propietario y el colaborador.
  • como no, permite trabajar de la forma típica y tópica con un servidor y conectándote al él, haciendo tus updates y tus commits…
  • dentro de esa forma típica de trabajar, aporta la funcionalidad de trabajar con conexion y sin conexión, esto quiere decir varias cosas, que permite al desarrollador estar conectado a un servidor centralizado e ir haciendo commits de forma local, sin que afecten a lo que hay en el repositorio. interesante para llevar control de versiones sobre trozos de codigo que no estas seguro del todo que no quieras subir al repositorio no vaya a ser que acabes reconociendo que la has liao parda.
  • siguiendo con la misma idea… tambien te permite crear branches en local para permitirte poder un nivel de aislamiento mayor, lo que vendría a ser como crear un branch por desarrollador y luego hacer el merge con el branch principal o trunk.
  • otra de las funcionalidades que puede ofrecer y pese a que, en teoria, el sistema de merges de bazaar esta mucho mejor que no el de svn (lo dicen ellos, yo no lo he probado xD), es que haya un administrador del repositorio y que pueda validar o invalidar los commits que hace cada usuario, cosa que tambien se puede dejar en manos de la inteligencia artificial claro está ;)

así viendo un poco más que ofrece, puede ofrecer, o como se puede trabajar con bazaar ya resulta bastante interesante? yo creo que si, más alla de la idea inicial que yo tenia sobre bazaar (que era tan básica y malinterpretable como decir que permitía tener un branch por desarrollador).

cuando se compara con SVN, que es uno de los más populares, podríamos decir que Bazaar presenta las siguientes ventajas:

  • mejor modelado de workflow’s
  • mejores merges y posibilidad de hacer depender los merges de inteligencia humana
  • posibilidad de trabajar sin conexión, manteniendo el control de versiones local.
  • logs más claros
  • extendible, con una arquitectura de plug-ins

para los interesados en leer algo más sobre que ventajas tiene bazaar sobre svn aqui os dejo el link.

por si os falta algún motivo todavía, esta disponible para MAC OS, Windows y Linux! y encima está programado en Python!!!

almenos yo después de leer un poco sobre él y llegar a esas conclusiones y/o llegar a enterarme de esas funcionalidades, concluyo con que solo me falta usarlo!

Tagged with: