Reparar conflictos en Bazaar

Bazaar es el sistema de control de versiones utilizado por Launchpad para sus proyectos, por lo tanto Monocaffe Connections Manager utiliza Bazaar. Al igual que CVS, SVN y GIT, bazaar (bzr) tiene sus raíces en la línea de comandos, pero además aporta una herramienta GTK muy fácil de utilizar llamada Olive



Una de las cosas más llamativas de Bazaar es la resolución de conflictos. Cuando intentamos realizar un commit contra una rama que está en conflicto con nuestra rama local, Bazaar creará tres ficheros: .OTHER, .THIS y .BASE. Para resolver el conflicto podemos utilizar vimdiff, emacs o meld. Por defecto, Olive intentará utilizar meld, por lo que recomiendo tenerlo instalado y porque además es muy útil la herramienta.

Estos tres ficheros serán abiertos por Meld, por lo que sólo tenemos que integrar los cambios que deseamos tal que los tres ficheros sean iguales (no entremos en detalles sobre cada uno de los ficheros y las posibilidades, esto es lo más sencillo y rápido para resolver el conflicto). Guardamos los ficheros y cerramos Meld. Aquí nos encontramos con un pequeño detalle del que adolece Olive, no tiene ninguna opción para resolver el conflicto, por lo que tendremos que tirar de línea de comandos y ejecutar lo siguiente:

bzr resolve file.txt

De esta forma, los tres ficheros desaparecerán y podremos realizar nuestro commit.

2 comentarios:

  1. En primer lugar date las gracias por el post.
    Luego me gustaría obtener información de esos ficheros que crea bazaar, ya que yo estoy empezando con bazaar y me surgen, y tengo miedo de cargarme ficheros al subir modificaciones al proyecto.
    Te cuento un poco más.
    Tengo un par de proyectos subidos a Lauchpad.net , lo utilizo porque trabajo en distinto sitios con el mismo proyecto , y lo que hago son commints en varios sitios a la vez y luego los subo a al repositorio, el caso es que a veces creo que voy borrar ficheros que no debo en el repositorio...
    Bueno perdona por la explicación tan enredada ....
    Un saludo

    ResponderEliminar
  2. Hola de NUEVO:
    Digo esto porque como veo publicado mi anterior comentario, no se si es que tienes que aprobarlo o es que no lo envié... jejej
    La cuestión es que me gustaría poder aprender utilizar bazaar, para poder gestionar proyectos, programados por varias personas.
    La cuestión es que de momento se algunas cosas, como hacer commint, el cual registra los cambios que hacemos en local, y luego enviarlo a un repositorio como puede ser lauchpad.net.
    Hasta ahí bien, el caso es cuando hacemos commints varias personas y queremos mandarlos , no dan errores de que divergencias entre las ramas.. y cosas así..
    El caso es que los proyectos que utilizamos, tiene carpetas y ficheros que son datos, que realmente no debemos subir al repositorio, y que son distinto en función de la rama local (programador) estemo utilizando.
    Y cuando bajamos el proyecto del repositorio a veces nos elimina ficheros que son necesarios en nuestro proyecto...
    ¡¡¡ Necesito un poco orden y ayuda !!!!

    Gracias de antemano y perdona por la explicación.

    ResponderEliminar