| Autor: | Jesús M. Castagnetto |
|---|---|
| Contacto: | jesus@upch.edu.pe |
| Fecha: | 2008/02/15 |
| Organización: | Universidad Peruana Cayetano Heredia, Dirección Universitaria de Información |
Introducción al Sistema de Control de Versiones Bazaar [1].
| [1] | Bazaar: http://bazaar-vcs.org |
Una herramienta para que la gente pueda colaborar entre si fácilmente, y que maneja los cambios hechos a un grupo de archivos de manera que se pueda seguir la evolución de los mismos.
| [2] | Python: http://www.python.org/ |
La línea de comando (rápida, potente y simple):
Comparando cambios:
$ bzr diff somefile.py
Registrando los cambios:
$ bzr commit -m "Fixed bug #124"
Extrayendo una rama de un repositorio externo:
$ bzr branch http://example.com/someproject
Sistemas gráficos:
Para más información ver: http://bazaar-vcs.org/3rdPartyTools
En Ubuntu Linux (Debian, etc.):
$ sudo aptitude install bzr bzr-gtk bzrtools
Vamos a usar Bazaar en forma práctica.
Controlaremos las versiones de archivos correspondientes a esta presentación.
Usaré Ubuntu Linux como Sistema Operativo, se pueden hacer operaciones equivalentes en MS Windows, Mac OS X, etc.
Asumiré que ya tenemos Bazaar instalado y configurado correctamente.
Creando el proyecto:
$ mkdir 20080215_IntroBazaar $ cd 20080215_IntroBazaar
Comenzando a editar la presentación en formato RST:
$ gvim introbazaar.rst
Diciéndole a Bazaar quienes somos:
$ bzr whoami "Juan Perez <juanperez@example.com>"
Creando un repositorio local:
$ bzr init
Añadiendo los archivos al repositorio:
$ bzr add
Guardando la primera versión:
$ bzr commit -m "Inicio del proyecto"
Editando más y viendo las diferencias:
$ gvim introbazaar.rst $ bzr diff introbazaar.rst
Viendo las diferencias coloreadas (bzrtools):
$ bzr cdiff introbazaar.rst
Viendo las diferencias en GUI (bzr-gtk):
$ bzr gdiff introbazaar.rst
Cuando hemos terminado una sesión de cambios y queremos guardarlos.
Podemos usar la interfaz gráfica (Olive):
$ bzr gcommit
O la línea de comando:
$ bzr commit -m "Nuevo \ material para presentación"
Un repositorio se puede publicar usando un servidor web previamente configurado, y transfiriendo los archivos mediante varios protocolos: FTP, SFTP, WebDAV, etc.
Usaremos SFTP:
$ bzr push sftp://usuario@servidor/ruta/al/repo
En este caso:
Usaremos el repositorio creado anteriormente para obtener una rama en la cual podemos trabajar.
Como tenemos un servidor web podemos hacer, simplemente:
$ bzr branch http://servidor/ruta/al/repo
Editamos uno de los archivos y luego vemos el estado:
$ bzr status modified: introbazaar.rst
Podemos ver lo que hemos hecho usando diff:
$ bzr diff introbazaar.rst
Podemos editar la rama local cuanto queramos, y cuando estemos listos, combinar nuestros cambios con los de otra rama (no necesariamente la original):
$ bzr merge http://servidor/ruta/otra/rama
Asumiendo que hemos realizado los cambios que queríamos y estamos listos para enviar nuestros cambios (produciendo un parche)
Primero, nos aseguramos de tener los últimos cambios (y resolvemos conflictos, si ocurren):
$ bzr pull
Finalmente creamos el parche, el cual puede ser enviado por email, ftp, etc.:
$ bzr send -o miparche.txt
Podemos etiquetar una version:
$ bzr tag VERSION_2
Se puede ver esta (y otra) información usando:
$ bzr log
Y podemos empacar todo en un archivo para distribución:
$ bzr export ../misoftware-2.0.0alpha.zip
Si borramos un archivo por error, lo podemos recuperar:
$ rm introbazaar.rst $ bzr revert introbazaar.rst
Si añadimos el archivo equivocado al repositorio:
$ bzr add tempfile $ bzr remove --keep tempfile
Si registramos algo por error:
$ bzr uncommit
Multi-Tree Management: http://bazaar-vcs.org/ConfigManager
Python: http://www.python.org/
VIM: http://vim.org/
Ubuntu: http://www.ubuntu.com/
Por no aburrirse o asustarse demasiado.
Pueden encontrar esta (y otras) charla en:
¡Usen Bazaar!
