Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEva Peralta Plaza Modificado hace 8 años
1
Bazaar: Nueva generacion de sistemas de versionamiento distribuido Martin Albisetti argentina@gmail.com
2
Informacion General ● Hecho completamente desde cero ● Integramente desarrollado en Python ● Financiado por Canonical ● GPL v2 and newer! :D ● Muy facil de agregar funcionalidades ● Comunidad muy amigable ● En constante desarrollo
3
Conceptos Basicos
4
Revision ● Una foto del arbol de archivos y directorios, incluyendo su contenido y estado ● Incluye metadata: – fecha creado – autor – mensaje del commit – ancestro de cada archivo – mas cosas :D
5
Working Tree ● Un directorio versionado que contiene archivos y directorios que el usuarios puede editar ● Muchos comandos usan el Working Tree como su contexto – e.j. commit hace una nueva revision usando el contenido actual del Working Tree
6
Branch ● Una serie de revisiones ordenadas ● La ultima revision de un branch es llamada “head” ● Los Branches pueden ser separados y vueltos a “unir” mas adelante ● Los Branches estan relacionados si tienen “ancestros comunes”
7
Repository ● Donde se guardan las revisiones ● Por defecto, cada Branch tiene su propio repositorio – para ahorrar disco y optimizar, los Branches pueden compartir repositorios
8
Empezando desde el principio Instalar, Configurar e Interfaz
9
Instalando Bazaar ● Paquetes para Linux disponibles: – Ubuntu/Debian (apt) – Redhat/Fedora (yum) ● Otros sistemas operativos: – Windows – instalador disponible – Mac OS X – MacPorts o Fink – Free BSD - FreshPorts
10
Configurando Bazaar ● Nos presentamos a Bazaar... – bzr whoami “ jose@bzr.su” ● Verifiquemos... – bzr whoami jose@bzr.su ● o – vi ~/.bazaar/bazaar.conf
11
Ejecutando Comandos ● Sintaxis general: – bzr comando opciones/argumentos ● A tener en cuenta: – Las opciones pueden aparecer antes o despues de los argumentos – Las opciones globales tambien
12
Comandos Comunes ● -h, --help ● -v, --verbose ● -q, --quiet ● -r, --revision ● ayuda! ● mostrar mas info ● mostrar menos info ● elegir rango de revisiones: x..y – incluye x – excluye y – ambos opcionales
13
Aliases de Comandos ● Muchos comandos tienen aliases: – escribimos menos :D – mas facil para usuarios de SVN o CVS ● Podes crear los tuyos: [ALIASES] diffm=diff –-using meld
14
Plugins ● Los plugins agregan comandos, mas opciones, formatos y funcionalidades completamente nuevas
15
Interfaces Graficas
16
Ayuda! ● Bazaar viene con la ayuda integrada ● Para ver los temas disponibles: – bzr help ● Ayuda de un comando especifico: – bzr help xxx
17
Control de Versionamiento Personal Quien digo que los SCV son solo para equipos?
18
Empezando un Proyecto ● Versionando un proyecto existente: – cd super_proyecto – bzr init – bzr add – bzr commit -m “Inicio del Versionamiento” ● Una copia de todos los archivos estan almacenados en el directorio.bzr – Solo en el directorio superior (en contraste con cvs/svn)
19
Ver nuestros cambios ● Cambios realizados: – bzr status ● Diferencias reales: – bzr diff
20
Versionando archivos y directorios ● Versionar todos los archivos y directorios: – bzr add ● Registrar *algunos* archivos y directorios: – bzr add foo.py bar/
21
Registrando tus Cambios ● Registrar todos los cambios: – bzr commit ● Registrando solo algunos cambios: – bzr commit README doc/ ● El comando -m se usar para darle el mensaje directamente desde la linea de comando – en caso contrario se abre un editor de texto
22
Deshacer Cambios ● Des-versionando un archivo: – bzr remove foo.py ● Deshacer el ultimo commit: – bzr uncommit ● Deshacer todos los cambios desde el ultimo commit: – bzr revert – bzr revert foo.py
23
Viendo nuestro Historial ● Historial de este Branch: – bzr log ● Historial resumido: – bzr log --short ● Interfaces graficos disponibles... ● bzr-gtk (GNOME) – bzr visualize ● Qbzr (KDE) – bzr qlog
24
Viendo el Historial de un Archivo ● Mostrar cambios que afectar foo.py: – bzr log foo.py ● Contenido de foo.py en la Revision X: – bzr cat -r X foo.py
25
Comandos Principales ● Mas usados: init add commit status diff log export ● Otros comandos: remove uncommit revert cat tag mv
26
Compartiendo Dos cabezas son mejor que una
27
Creando un Branch nuevo ● Clonar un Branch existente: – bzr branch URL [directorio] ● Por defecto el nombre del directorio se toma de la ultima parte de la URL ● Ejemplos: – bzr branch /home/jbazaar/super-dev – bzr branch /home/jbazaar/super-dev mega – bzr branch http://jbazaar.su/super-dev – bzr branch sftp://beuno@jbazaar.su/super-dev
28
Volviendo a Unir cambios ● Para tomar los cambios de otro branch usamos el comando merge: – bzr merge [URL] ● Si omitimos la URL, se usa la URL del Branch padre
29
Conflictos :( ● Algunas operaciones solo pueden ser realizadas con la intervencion de una persona ● Si el comando merge reporta problemas, crea tres archivos: ● foo.THIS ● foo.OTHER ● foo.BASE
30
Resolviendo Conflictos Marcadores Claro: >> MERGE-SOURCE ● Despues de editar, los damos por resueltos: – bzr resolve ● Para dar por resuelto foo.py: – bzr resolve foo.py
31
Quien hizo que? ● Cuando desarrollan una o mas personas, a veces es util saber quien hizo que – bzr annotate foo.py ● Tambien disponible en forma grafica con el plugin bzr-gtk – bzr gannotate foo.py
32
Desarrollando en Equipo Hay mas de una forma para hacer lo mismo!
33
Enviando Branches ● La forma mas facil para compartir nuestro branch es hacer un “push” a un lugar compartido ● Comunmente se usa: – discos compartidos (Windows/Samba, NFS) – servidores web (via sftp o ftp) ● Ejemplos: – bzr push x:\proyectos\super – bzr push sftp://jbazaar.su/public_html/super
34
Administrando Branches ● A veces se nos pueden acomular muchos branches del mismo proyecto ● Para saber mas del branch: – bzr info ● Bautizar un branch: – bzr nick super-funcionalidad-nueva ● Comprar con el Branch padre: – bzr missing
35
Checkouts ● Un working tree que esta unido al branch remoto ● Commits en un checkout: – Verifica que el working tree este actualizado – guarda primero en el branch remoto ● Para hacer un checkout: – bzr checkout URL ● Crear un checkout sin un branch local: – bzr checkout --lightweight URL
36
Checkouts ● Unificar los cambios desde el branch padre: – bzr update ● Una vez que estamos actualizados con el branch padre podes hacer un commit: – bzr commit
37
Ayudando en la Comunidad Open Source El podes a la gente
38
Cambiando las reglas de la Comunidad... ● SCV Central: – solo pueden mandar cambios los dev. principales – solo ellos le sacan el jugo al SCV – el resto de los dev. manda parches ● SCV Distribuido: – solo pueden mandar cambios los dev. principales – todo el mundo le gana con el SCV – el resto de la gente manda sus branches (o bundles)
39
Los Desarrolladores Secundarios ganan ● SCVD elimina la barrera tecnica entre los que pueden mandar cambios y los que no ● La cuestion pasa a ser a donde pueden mandar sus cambios: – solo su branch? – el branch del equipo? – el branch principal? ● La barrera que queda es social
40
Los Desarrolladores Principales ganan tambien ● Menos administracion: – compartir y unificar ya no requiere otro branch mas – cada branch es un backup completo :D ● Mas flexibilidad: – podemos compartir nuestros cambios con cualquiera, no solo el branch principal – si usamos Bazaar, se puede cambiar el flujo de trabajo a medida que evoluciona la comunidad sin cambiar de herramienta
41
Hay mucho mas! ● Algunas cosas que no cubrimos: – Integracion con IDEs y sistemas de manejos de archivos – Smart servers – Nested trees – Testaments (firmar commits con gpg) – Branches externos (e.j. bzr-svn) – Programar para Bazaar
42
Web Sites ● Web site principal: – http://bazaar-vcs.org http://bazaar-vcs.org ● Launchpad – Bug tracking, etc: – https://launchpad.net/bazaar/ (Bazaar related) https://launchpad.net/bazaar/ – https://launchpad.net/bzr/ (Bazaar core) https://launchpad.net/bzr/ ● Documentacion oficial: – http://doc.bazaar-vcs.org http://doc.bazaar-vcs.org
43
La Comunidad Bazaar Internet Relay Chat: – #bzr en irc.freenode.net Listas de correo: – Ver el site principal Nuevos contribuidores bienvenidos!
44
Gracias! argentina@gmail.com beuno@ubuntu.com nick irc: beuno
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.