Normalizar la convención de formato de llaves de Git (misma línea frente a línea siguiente) al fusionar

CorePress2024-01-16  7

Soy muy nuevo en Git (he estado usando TFS durante aproximadamente una década y he estado investigando Git durante unos días) y estoy creando un prototipo para cambiar a nuestro equipo de desarrollo a usar Azure Repos en lugar de TFS.

Problema: Un problema común con el que me encuentro (y uno de mis tipos de problemas que menos me gustan) son las fusiones cuando un programador reformatea un archivo de código para que tenga una regla de formato de llave diferente (es decir, la misma línea frente a la siguiente) que el archivo. tenía antes y la lógica de combinación muestra cientos de cambios (uno por cada cambio de llave) y no puedo decir fácilmente dónde están los cambios lógicos reales en el archivo de código cuando voy a comparar o verificar el archivo. Sé que esto nunca debería suceder, pero algunos programadores lo hacen de todos modos.

Pregunta: Hace poco aprendí que Git puede normalizar liNo hay terminaciones entre los sistemas de desarrollo de Windows y Mac/Linux (el problema \r\n vs \n) con el uso de la configuración crlf, y me preguntaba si había alguna función en Git para normalizar las convenciones de formato de código como la nueva línea entre llaves vs. ¿Mismo estilo de línea?

Solución deseada: Lo que me gustaría es que el repositorio de Git use siempre un estilo de llave (que decidiremos como equipo), luego, cuando un desarrollador fusiona el código, se formatea automáticamente en el formato acordado para el repositorio, y luego, cuando un desarrollador extrae código de un repositorio, se formatea en el estilo de su preferencia para que las mismas líneas y las siguientes puedan vivir en paz y el feo problema de fusión de cambiar un archivo de código de una convención de formato a otra. quedaría solucionado para siempre. ¿Hay alguna manera de hacer talcosa?



------------------------------------

La solución sería utilizar una herramienta diferente para esto, no git. Sé que hubo un proyecto de investigación para el control de versiones para almacenar un árbol de sintaxis en lugar de líneas de texto y formatear el código según las preferencias del usuario al finalizar la compra, como usted preguntaba, pero se abandonó hace aproximadamente 15 años.

Su equipo podría tener un script que invoque antes de realizar la confirmación (¿o un enlace de confirmación previa de git?), que ejecute un formateador de código para usar el formato preferido del equipo. Luego, después de extraerlo, cualquier desarrollador ejecutaría el formateador de código con su propia configuración preferida. Pero no creo que puedan arreglar las diferencias de git que muestran al personal del equipo.estándar.



------------------------------------

Puedes usar un script de shell git-hook que verifique todos los archivos que se han modificado y les aplique mvn prettier: https://github.com/HubSpot/prettier-maven-plugin

1

1

Su respuesta podría mejorarse con información de respaldo adicional. Por favor edite para agregar másdetalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta. Puedes encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

Comunidad

Bot

12 de mayo de 2023 a las 10:35

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare