Tengo dos ramas de desarrollo en git y con frecuencia necesito cambiar entre las dos. Sin embargo, lo realmente frustrante es que cada vez que cambio ramas en git, todo el proyecto se reconstruye porque las marcas de tiempo del sistema de archivos de algunos archivos cambiarán.Evite la recompilación con git y make
Ofc, los makefiles están configurados para construir el proyecto en dos directorios de compilación diferentes.
¿Hay alguna forma de evitar esto? La compilación es un proceso muy largo y lento ...
Editar: - Esta es una explicación un poco más detallada de la pregunta ... Digamos que tengo un encabezado de archivos Basic.h que está incluido en una serie de otros archivos. Basic.h es diferente entre la rama 1 y la rama 2.
Ahora digamos que he compilado la rama 1 en build_branch1 y la rama 2 en build_branch2. Digamos que tengo la rama 2 actualmente prestada. Ahora comprobo la rama 1 y cambio File1.cpp y vuelvo a compilar. Idealmente, dado que File1.cpp solo ha cambiado desde que lo compilé por última vez, este es el único archivo que debe recompilarse.
Sin embargo, como Basic.h ha cambiado su marca de tiempo debido a la finalización de la compra, todos los archivos que incluyen Basic.h se volverán a compilar. Quiero evitar esto.
Pensé que git solo cambia las marcas de tiempo en los archivos que realmente han cambiado. En ese caso, debe reconstruir de todos modos para obtener resultados correctos. ¿Qué comportamiento estás buscando? – sinelaw
Ver [este] (http://kerneltrap.org/mailarchive/git/2007/3/1/240167) tema relacionado. Básicamente, hacer algo como esto no es recomendable. – Job
@sinelaw: - a.cpp incluye Basic.h. Tengo dos copias de a.o en branch1_build/a.o y branch2_build/a.o. Ahora cuando cambio las ramas de branch1 a branch2, recompilará branch2_build/ao aunque esté actualizado – owagh