Me gustaría poder invocar algunos procesamientos previos en los archivos antes de que Git intente fusionarlos y el proceso posterior combine el resultado. La idea general aquí es que algunos archivos son difíciles de fusionar automáticamente tal como están, pero se pueden convertir a una forma más fácil para el procesamiento. Aquí está mi caso de uso concreto:¿Cómo envuelvo la fusión del archivo git con el procesamiento previo y posterior?
Tengo un repositorio de datos en su mayoría no muy sensibles. Dentro de ese repositorio, tengo un poco de datos confidenciales encriptados, en un archivo llamado sensitive.pgp
. Me gusta este acuerdo porque no tengo que confiar en que mi repositorio se gestiona de forma segura, solo tengo que confiar en el cifrado y la contraseña. Por supuesto, es posible que Git no pueda fusionar el texto encriptado, por lo que si se modifica sensitive.pgp
en dos cajas a la vez, no hay fusión disponible, incluso si los cambios en el texto claro se separan fácilmente. El flujo de trabajo manual es el siguiente:
- Se ha detectado un conflicto de mezcla para
sensitive.pgp
. - Comience git-mergetool. La herramienta tampoco puede fusionar archivos PGP.
- Ahora tengo archivos temporales para mi versión, la versión base y la versión remota.
- Descifrar los tres archivos.
- Invoque mi herramienta de fusión en las versiones descifradas.
- Encripta el resultado.
- git-add the new
sensitive.pgp
.
Me gustaría decirle a Git que aplique mi procesamiento previo y posterior incluso antes de combinar, para que pueda manejarlo automáticamente. Puedo imaginar muchos otros escenarios con el mismo patrón general: casi siempre que tienes un formato de archivo comprimido con una estructura subyacente similar al texto (por ejemplo, PDF, OpenOffice, Word), por ejemplo.
¿Alguna sugerencia?
Puntos de bonificación: ¿Hay alguna forma de configurar esta operación para que se realice únicamente en archivos o tipos de archivos específicos, aparte de poner esa lógica en el procesamiento previo y posterior? –