4.3 Ejercicio 3
Ejercicio 3
Del repo de git, hacer checkout de la revisión fe870600fe y mezclar 1bdca81641
.
Resuelvan ambos conflictos (hay 2 archivos con conflctos, un conflicto en cada
archivo).
Conflicto en path.c
Listing 4.5:Ejercicio 3 - conflicto en path.c852 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 }
Creo que noes muy difícil entender lo que sucedió en cada rama. En HEAD la
llamada a set_git_dir() toma un segundo parámetro en la línea 854. En la otra
rama, la llamada a check_repository_format() tiene un nuevo parámetro
NULL en la línea 861. Esto apunta a tener esto como resolución del
conflicto:
Listing 4.6:Ejercicio 3 - resolución del conflicto en path.c852 if (is_git_directory(".")) { 853 set_git_dir(".", 0); 854 check_repository_format(NULL); 855 return path; 856 }
Conflicto en builtin/pack-objects.c
Listing 4.7:Ejercicio 3 - conflicto en builtin/pack-objects.c880 len = encode_in_pack_object_header(header, sizeof(header), 881 OBJ_REF_DELTA, size); 882 hashwrite(out, header, len); 883<<<<<<< HEAD 884 hashwrite(out, base_oid.hash, 20); 885||||||| 51ebf55b93 886 hashwrite(out, base_sha1, 20); 887======= 888 hashwrite(out, base_sha1, the_hash_algo->rawsz); 889>>>>>>> 1bdca81641 890 copy_pack_data(out, reuse_packfile, w_curs, cur, next - cur); 891 return;
En este caso, en HEAD el segundo parámetro a la llamada a hashwrite() fue
cambiado de base_sha1 en la línea 886 a base_oid.hash en la línea 884. En la
otra rama, el tercer parámetro a la misma llamada cambió de 20 en la línea
886 a the_hash_algo->rawsz en la línea 888. Esto apunta a esto como
resolución:
Listing 4.8:Ejercicio 3 - resolución del conflicto en builtin/pack-objects.c880 len = encode_in_pack_object_header(header, sizeof(header), 881 OBJ_REF_DELTA, size); 882 hashwrite(out, header, len); 883 hashwrite(out, base_oid.hash, the_hash_algo->rawsz); 884 copy_pack_data(out, reuse_packfile, w_curs, cur, next - cur); 885 return;
Si comparan con la revisión f8cb64e3d4, ne deberían obtener diferencias
significativas.
Como ejercicio adicional, imaginen lo que tendrían que hacer para resolver esos
conflictos si no usaran diff3.