1.3 Términos y Acrónimos

El libro se puede descargar aquí

Ahora que hemos visto como se ven los conflictos (con el ancestro común), quiero presentarles algunos términos acerca de las secciones de un conflicto que evitarán algunas ambugüedades futuras.

1.3.1 Acerca de las secciones de un conflicto

Bloque de Conflicto o CB

Un Bloque de Conflicto o CB20 comienza con la Marca de Inicio de Conflicto y termina con la Marca de Cierre de Conflicto.

Bloque Superior o UB

El Bloque Superior o UB es la sección superior de un CB21 . Esta sección siempre tendrá el contenido como se presenta en HEAD, es decir, la revisión donde estamos trabajando.

Bloque Medio o MB

El Bloque Medio o MB22 es la sección media de un CB. Esta sección aparecerá si están usando diff3 y, durante una operación de merge, contendrá lo que normalmente llamamos el ancestro común.

Bloque Inferior o LB

El Bloque Inferior o LB23 es la sección inferior de un CB. Esta sección contendrá, durante una operación de merge, lo que hay en la otra rama.

Términos aplicados en el Ejemplo 3

Del Ejemplo 3:

Listing 1.50:Conflicto del ejemplo 3
671        struct bitmap *objects = bitmap_git->result; 
672 
673<<<<<<< HEAD 
674        ewah_iterator_init(&it, type_filter); 
675||||||| d0654dc308 
676        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
677                return; 
678 
679        ewah_iterator_init(&it, type_filter); 
680======= 
681        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
682                return; 
683 
684        init_type_iterator(&it, bitmap_git, object_type); 
685>>>>>>> 20a5fd881a 
686 
687        for (i = 0; i < objects->word_alloc &&

CB

Listing 1.51:CB del ejemplo 3
673<<<<<<< HEAD 
674        ewah_iterator_init(&it, type_filter); 
675||||||| d0654dc308 
676        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
677                return; 
678 
679        ewah_iterator_init(&it, type_filter); 
680======= 
681        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
682                return; 
683 
684        init_type_iterator(&it, bitmap_git, object_type); 
685>>>>>>> 20a5fd881a

UB

Listing 1.52:UB del ejemplo 3
674        ewah_iterator_init(&it, type_filter);

MB

Listing 1.53:One MB del ejemplo 3
676        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
677                return; 
678 
679        ewah_iterator_init(&it, type_filter);

LB

Listing 1.54:LB del ejemplo 3
681        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
682                return; 
683 
684        init_type_iterator(&it, bitmap_git, object_type);

Términos aplicados a un conflicto del Ejercicio 3

Conflict from path.c of Ejercicio 3:

Listing 1.55:Conflicto en path.c del Ejercicio 3
852        if (is_git_directory(".")) { 
853<<<<<<< HEAD 
854                set_git_dir(".", 0); 
855                check_repository_format(); 
856||||||| 51ebf55b93 
857                set_git_dir("."); 
858                check_repository_format(); 
859======= 
860                set_git_dir("."); 
861                check_repository_format(NULL); 
862>>>>>>> 1bdca81641 
863                return path; 
864        }

CB

Listing 1.56:CB del Ejercicio 3
853<<<<<<< HEAD 
854                set_git_dir(".", 0); 
855                check_repository_format(); 
856||||||| 51ebf55b93 
857                set_git_dir("."); 
858                check_repository_format(); 
859======= 
860                set_git_dir("."); 
861                check_repository_format(NULL); 
862>>>>>>> 1bdca81641

UB

Listing 1.57:UB del Ejercicio 3
854                set_git_dir(".", 0); 
855                check_repository_format();

MB

Listing 1.58:MB del Ejercicio 3
857                set_git_dir("."); 
858                check_repository_format();

LB

Listing 1.59:LB del Ejercicio 3
860                set_git_dir("."); 
861                check_repository_format(NULL);

1.3.2 Sobre las diferencias entre ellos

dMU

Los cambios aparentes que son aplicados sobre el MB para convertirse en el UB, sin considerar revisiones intermedias.

dML

Los cambios aparentes que son aplicados sobre el MB para convertirse en el LB, sin considerrar revisiones intermedias.

Términos aplicados en el CB del Ejemplo 3

dMU Arrancando desde el MB:

Listing 1.60:MB del Ejemplo 3
676        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
677                return; 
678 
679        ewah_iterator_init(&it, type_filter);

Terminando en el UB:

Listing 1.61:UB del Ejemplo 3
674        ewah_iterator_init(&it, type_filter);

dMU: Remover el condicional que arranca en la línea 676 del MB.

dML Arrancando en el MB:

Listing 1.62:MB del Ejemplo 3
676        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
677                return; 
678 
679        ewah_iterator_init(&it, type_filter);

Terminando en el LB:

Listing 1.63:LB from example 3
681        if (bitmap_git->reuse_objects == bitmap_git->pack->num_objects) 
682                return; 
683 
684        init_type_iterator(&it, bitmap_git, object_type);

dML: cambiar la llamada a ewah_iterator_init() en la línea 679 por una llamada a init_type_iterator() en la línea 684.

Términos aplicados a un CB del Ejercicio 3

dMU Arrancando desde el MB:

Listing 1.64:MB del Ejercicio 3
857                set_git_dir("."); 
858                check_repository_format();

Terminando en el UB:

Listing 1.65:UB del Ejercicio 3
854                set_git_dir(".", 0); 
855                check_repository_format();

dMU: Agregar un segundo parámetro a la llamada a set_git_dir(). El segundo parámetro es 0.

dML Arrancando desde el MB:

Listing 1.66:MB del Ejercicio 3
857                set_git_dir("."); 
858                check_repository_format();

Terminando en el LB:

Listing 1.67:LB del Ejercicio 3
860                set_git_dir("."); 
861                check_repository_format(NULL);

dML: Agregar NULL como un parámetro a la llamada a check_repository_format().

Copyright 2020 Edmundo Carmona Antoranz