Hoy he estado tocando un poco el control de versiones distribuido Bazaar. Bazaar es un sistema de control de versiones que se viene utilizando bastante desde hace algún tiempo, debido al uso del mismo en la plataforma launchpad que tienen montada los de ubuntu, y que funciona bastante bien.
Voy a explicar antes de nada qué es un sistema de control de versiones de código para el que no lo sepa. Un VCS (Version Control System) es una herramienta que te gestiona diferentes versiones de código, de tal forma que varias personas puedan trabajar sobre el mismo código, y después el VCS se encarga de mezclar las diferentes versiones, siendo así una herramienta indispensable para el desarrollo de aplicaciones en grupos de desarrollo. Además, entre muchas otras funcionalidades, esta herramienta permite obtener una versión antigua del proyecto de forma simple, así pues no hay miedo de estropear algo, ya que está en el repositorio, y todo es recuperable.
Ahora que sabemos lo que es un VCS, voy a explicar cómo usar bazaar para gestionar nuestras versiones de código. Lo primero es instalar bazaar, que se puede conseguir de su página web, o de los repositorios de tu distribución favorita, busca por bzr.
Vamos a suponer que tenemos un proyecto ya comenzado, en un directorio, llamemosle “proyecto”. Dentro de este directorio tenemos los ficheros de código fuente y demás cosas en las que estamos trabajando, y queremos versionar.
Primero hay que iniciar el repositorio, esto se hace con una orden muy simple, estando en el directorio raiz:
bzr init
Una vez hecho esto, ahora hay que decirle que ficheros queremos que controle, en nuestro caso todos:
bzr add *
El comando add añade ficheros al repositorio, por lo tanto cuando creemos ficheros o directorios nuevos utilizaremos este comando “bzr add fichero_nuevo” para que lo incluya en el control de versiones. Al igual que hay un add, existe un bzr rm, un bzr mkdir, y algunos más.
Ahora podemos ver el estado de nuestro repositorio con:
bzr status
Para que los cambios sean definitivos, debemos hacer un commit:
bzr commit
Esto nos abrirá un editor de textos, en el cuál pondremos lo que hemos cambiado, y esto saldrá en el log del repositorio.
Así ya tenemos un repositorio en nuestro ordenador, pero ahora nosotros queremos publicarlo en un servidor para que los demás desarrolladores puedan descargarse el código, modificar, y subir sus modificaciones:
bzr push sftp://danigm@servidor.com/home/danigm/public_html/proyecto
En este caso lo he subido a mi servidor, al cual tengo acceso por ssh. Esto me pedirá la contraseña para poder acceder, y ya estará mi proyecto subido. Con bzr push se pueden utilizar diferentes protocolos, como el ftp, bzr+ssh (este para launchpad)….
Una vez hecho el push deberás hacer un checkout para poder trabajar igual que trabajarías con subversion
Ahora es el momento de que otro desarrollador quiera pillar el código, cambiar algo, y subirlo, pues bien, esto se puede hacer de forma similar a cómo se haría con subversion:
bzr co sftp://dev2@servidor.com/home/danigm/public_html/proyecto
Aquí nos pedirá el password, para poder descargar el proyecto, y creará una copia local del mismo, donde cada commit que hagamos será publicado en el repositorio del servidor. También es posible que personas sin acceso al servidor puedan descargarselo, por medio de http:
bzr co http://servidor.com/~danigm/proyecto
Una vez el desarrollador2 tenga su copia de trabajo, puede modificar los ficheros, añadir, borrar, etc. Y cuando quiera que sus cambios se vean en el repositorio tiene que hacer un commit:
bzr ci
Se le pedirá la contraseña, y se le abrirá el editor de textos para que ponga el mensaje de log. Luego se sube la versión al repositorio.
Cuando tienes una copia del repositorio y algún otro desarrollador ha modificado algo, tienes que actualizarte para que se descarguen los últimos cambios:
bzr up
Para ver lo que ha cambiado, puedes mirar el log:
bzr log
Así podemos utilizar bazaar como un repositorio centralizado, al estilo de subversion, sin demasiada complicación. Además de esto bazaar nos permite crear ramas (branch), mezclar ramas (merge), y muchas cosas más, que se pueden ver en la ayuda, o en la documentación.
0 Respuestas a “Repositorios al estilo Subversion con Bazaar”