Un cambio que entra en conflicto es cuando dos personas han hecho un cambio en el mismo archivo de tal forma que los dos cambios no pueden resolverse automáticamente.
1) Comencemos con un ejemplo de una fusión no conflictiva.
archivo original
line1
line2
line3
persona A cambia a esto:
line1CHANGED
line2
line3
persona B cambia a esto:
line1
line2CHANGED
line3
Cuando los son a la vez registró y se fusionaron , no hay conflicto porque puede resolver fácilmente producir este archivo final:
line1CHANGED
line2CHANGED
line3
Subversion manejará esto automáticamente como una combinación.
2) Ahora un ejemplo de cambios contradictorios.
archivo original
line1
line2
line3
persona A cambia a esto:
line1CHANGED_BY_A
line2
line3
persona B cambia a esto:
line1CHANGED_BY_B
line2
line3
Esto no se pueden combinar de forma automática, entonces es un conflicto Tendrá que resolver, ya sea aceptando el cambio de la persona A o el cambio de la persona B. En este caso, la subversión le avisará de conflictos y requerirá una decisión suya sobre cómo resolverlos.
3) Finalmente, puede tener cambios conflictivos y no conflictivos dentro de la misma revisión.
archivo original
line1
line2
line3
persona A cambia a esto:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3
persona B cambia a esto:
line1CHANGED_BY_B
line2
line3ALSO_CHANGED_BY_B
Ahora, con este ejemplo, las dos personas han cambiado el archivo, y hay un cambio conflictivo en la línea 1 que debe resolverse, pero la línea s 2 & 3 son cambios no conflictivos y pueden resolverse automáticamente.
Puede elegir resolver esto de varias maneras.
En primer lugar, puede aceptar completamente el archivo A o B y descartar el otro. Esto daría lugar a que las otras personas se pierdan cambios no conflictivos. Por ejemplo, se elige para resolver por completo el uso de A, su archivo final sería:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3
(Exactamente archivo de A, y todos los cambios de B se descartan)
En segundo lugar, puede resolver sólo los cambios conflictivos, y aún conserva todos los cambios no conflictivos.De esta forma elegirías el cambio de A o de B en la primera línea y obtendrás los cambios de ambas líneas de ambas personas. Por lo tanto, digamos por ejemplo que elija para resolver los conflictos utilizando A, su archivo final sería:
line1CHANGED_BY_A
line2ALSO_CHANGED_BY_A
line3ALSO_CHANGED_BY_B
alternativa que puede utilizar herramientas como KDiff que apoyan la revisión de cada conflicto por separado (debido, por supuesto, usted puede tener cambios mutliple, tanto en conflicto como sin conflicto, dentro del mismo archivo), lo que le permitirá seleccionar diferentes métodos de resolución para cada uno.
Si tiene problemas para entender la fusión con las herramientas de línea de comando, le recomiendo que eche un vistazo a KDiff (u otra herramienta GUI merge/diff) ya que muestran los archivos uno al lado del otro (junto con el original) y te permite visualizar lo que haría cada acción de resolución.
¡Gracias por tu respuesta detallada! ¡Pude reproducir tus ejemplos en un proyecto svn y finalmente entiendo la diferencia entre los comandos de conflicto de minas y los de minas completos! =) –