La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bazaar: Nueva generacion de sistemas de versionamiento distribuido Martin Albisetti

Presentaciones similares


Presentación del tema: "Bazaar: Nueva generacion de sistemas de versionamiento distribuido Martin Albisetti"— Transcripción de la presentación:

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


Descargar ppt "Bazaar: Nueva generacion de sistemas de versionamiento distribuido Martin Albisetti"

Presentaciones similares


Anuncios Google