=====================
Manejo de Conflictos
=====================

Algunas operaciones, como merge, revert y pull, modifican el contenido de su
working tree. Estas modificaciones son generadas automaticamente, con lo cual
pueden tener conflictos con el estado actual de su working tree.  Muchos tipos
de cambios pueden ser combinados automaticamentem pero a veces solo algunos 
humanos pueden determinar la decision correcta a tomar.  Cuando esto sucede,
Bazaar lo informara que hay un conflict y pedira que lo resuelva. El comando
para resolverlo es ``resolve``, pero debe realizar alguna accion antes de
ejecutarlo.

Cada tipo de conflicto esta explicado a continuacion, y la accion que se debe
realizar para resolver el conflicto esta detallada.


Conflictos de Texto (Text conflicts)
=====================================
Mensaje comun::

  Text conflict in ARCHIVO

Estos se producen cuando el texto a unificar no puede ser completamente
reconciliado entre dos cambios. Bazaar emitira archivos para cada version con
extensiones THIS, OTHER, y BASE.  THIS es la version del archivo del tree
de destino, por ejemplo, el tree al que estan unificando los cambios. OTHER
es la version que estan uniendo al tree de destino. BASE es la version 
anterior que es usado como base para la comparacion.

En la copia principal del archivo, Bazaar incluira los cambios que puede
reconciliar, y cualquier cambio sin reconciliar son rodeados con marcadores
"herringbone" como ``<<<<<<<``.

Digamos que el texto inicial es "El lider del proyecto lo lanzo.", y THIS lo
modifica a "Martin Pool lo lanzo.", mientras que OTHER lo modifica a "El lider 
del proyecto lanzo Bazaar."  Un conflicto se veria asi::

  <<<<<<< TREE
  Martin Pool lo lanzo.
  =======
  El lider del proyecto lanzo Bazaar.
  >>>>>>> MERGE-SOURCE

La resulucion correcta seria "Martin Pool lanzo Bazaar."

Puede manejar conflictos de texto o editando la copia principal del archivo,
o invocando herramientas externas on las versiones THIS, OTHER y BASE. Vale 
la pena mencionar que resolver conflictos de texto rara vez involucra elegir
un conjunto de cambios u otros. Los mas comun es que tenga que combinar 
inteligentemente.

Si modifica la copia principal, asegurese de sacar los marcadores "herringbone".
Cuando termino de modificar, el archivo debe estar como si nunca hubiese estado 
con conflictos, y estar listo para hacer commit.

Cuando resolvio los conflictos de texto, solo ejecute "bzr resolve", y Bazaar 
detectera automaticamente que resolvio.


Conflictos de contenido (Content conflicts)
============================================
Mensaje comun::

  Contents conflict in ARCHIVO

Este conflicto sucede cuando hay cambios que crean conflictos en el tree de 
destino y el fuente a unificar, pero los items con conflictos no son archivos 
de texto.  Pueden ser archivos binarios, symlinks o directorios.  Pueden suceder 
con archivos que fueron eliminados en un lado, y modificados en el otro.

Como los conflictos de texto, Bazaar creara archivos THIS, OTHER y BASE.
(pueden ser archivos normales, symlinks o directorios).  Esto no incluira 
la "copia principal" del archivo con marcadores "herringbone".  Parecera que la 
"copia principal" fue renombrado a THIS o OTHER.

Para resolver esto, utilice "bzr mv" para renombrar el archivo a su nombre 
original, y combine los cambios manualmente. Cuando este satisfecho, ejecute 
"bzr resolve ARCHIVO".  Bazaar no puede detectar cuando cambios de este tipo 
fueron resueltos.


Rutas Duplicadas (Duplicate Paths)
==================================
Mensaje comun::

  Conflict adding file ARCHIVO.  Moved existing file to ARCHIVO.moved.

Bazaar a veces intentara crear un archivo usando la ruta que ya fue usada.
El archivo existente ser renombrado a "ARCHIVO.moved".  Si lo desea, puede 
renombrar cualquiera de estos archivos, o combinar su contenido. Cuando 
este satisfecho, puede ejecutar "bzr resolve ARCHIVO" para marcar que el 
conflicto fue resuelto.


Padre sin versionar (Unversioned Parent)
========================================
Mensajes comunes::

    Conflict because ARCHIVO no esta versionado, pero tiene hijos versionados.

A veces Bazaar intentara crear un archivo cuyo directorio padre no esta 
versionado. Esto sucede cuando el directorio fue eliminado en el destino, 
pero tiene un hijo nuevo en origen, o vice versa. En esta situacion, Bazaar 
versionara al directorio padre tambien.  Resolver este tema depende mucho 
en el escenario particular.  Puede que quiera renombrar o eliminar o renombrar 
cualquier archivo o directorio.  Cuando esta satisfecho, puede ejecutar "bzr 
resolve ARCHIVO" para marcar el conflicto como resuelto.


Padre faltante (Missing Parent)
===============================
Mensaje comun::

  Conflict adding files to ARCHIVO.  Created directory.

Esto sucede cuando un archivo fue eliminado en el destino, pero tiene hijos 
en el origen.  Esto es similar al conflicto "Padre sin versionar", excepto 
que el directorio padre *no existe*, en vez de no estar versionado. En esta 
situacion, Bazaar creara al padre faltante.  Resolver estos temas depende 
mucho de cada caso particular. Usted puede querer renombrar o eliminar 
cualquiera de los archivos o directorios.  Cuando este satisfecho, puede 
ejecutar "bzr resolve ARCHIVO" para marcar al archivo resuelto.


Borrando al Padre (Deleting Parent)
===================================
Mensaje comun::

  Conflict: can't delete ARCHIVO because it is not empty.  Not deleting.

Esto es el opuesto a "Padre faltante".  Un directorio es eliminado en el 
origen, pero tiene hijos en el destino.  Bazaar mantiene el directorio.
Resolver este tema depende mucho de cada escenario particular.  Quizas quiera 
renombrar o eliminar cualquiera de los archivos o directorios.  Cuando esta 
satisfecho, puede ejecutar "bzr resolver ARCHIVO" para marcar al conflicto 
como resuelto.


Conflicto de Ruta (Path Conflict)
=================================
Mensaje comun::

  Path conflict: RUTA1 / RUTA2

Esto sucede cuando en el origen y el destino han sido modificados el nombre 
o directorio padre de un archivo. Bazaar usara la ruta de los elementos del 
origen. Puede renombrar el archivo, y una vez que lo ha hecho, ejecutar 
"bzr resolve ARCHIVO" para marcarl el conflicto como resuelto.


Bucle Padre (Parent Loop)
=========================
Mensaje comun::

  Conflict moving ARCHIVO into DIRECTORIO.  Cancelled move.

Esto sucede cuando en el origen y el destino se han movido directorios, de 
tal forma que, si se aplicaran los cambios, el directorios se contendria a 
si mismo.
Por ejemplo::

  $ bzr init
  $ bzr mkdir a
  $ bzr mkdir b
  $ bzr commit -m "BASE"
  $ bzr branch . ../other
  $ bzr mv a b
  $ bzr commit -m "THIS"
  $ bzr mv ../other/b ../other/a
  $ bzr commit ../other -m "OTHER"
  $ bzr merge ../other

En esta situacion, Bazaar cancelara el movimiento, y dejara "a" en "b".
Puede renombrar los directorios como desee, y una vez que lo ha hecho, 
ejecute "bzr resolve ARCHIVO" para marcar el conflicto como resuelto.


MalformedTransform
==================
Es posible (aunque muy raro) que Bazaar de una excepcion MalformedTransform.
Esto quiere decir que Bazaar encontro un conflicto en el sistema de archivos 
que no le fue posible resolver.  Esto usualmente indica un bug.  Por favor 
haganoslo saber si se encuentra en esta situacion. Nuestro sistema de bugs 
se encuentra en https://launchpad.net/bzr/+bugs
