Cómo actualizar por lotes los mensajes de confirmación de Git -
En Mozilla somos muy estrictos a la hora de recibir contribuciones a través de git/GitHub. Además de requerir pruebas y hacer cumplir la calidad del código, un aspecto básico de enviar una confirmación (o varias) es que el mensaje de confirmación comience con “error #######”, que es una referencia a su error Bugzilla. El requisito del mensaje tiene sentido, pero odio volver a los contribuyentes y pedirles que hagan “el papeleo” para cambiar su mensaje de confirmación para que coincida con nuestro estándar, por lo que generalmente trato de realizar la actualización por ellos.
Recientemente, MDN recibió una contribución que actualizó CKEditor y lo hizo a través de aproximadamente 60 confirmaciones, ninguna de las cuales hacía referencia al número de error para la actualización de la función. Tenía muchas ganas de realizar las actualizaciones de mensajes de confirmación para este colaborador, pero quería hacerlo de forma automática: una actualización por lotes para ahorrarme tiempo al actualizar cada mensaje uno por uno. Bienvenido a filter-branch
y --msg-filter
!
Prependiendo para confirmar mensajes
Para anteponer texto a cada mensaje de confirmación en un rango determinado, debe ejecutar un mensaje como:
git filter-branch --msg-filter 'echo "error ###### - c" cat' master..HEAD
La combinación de filter-branch
y --msg-filter
le permitirá repetir cada mensaje de confirmación. La pieza de eco te permite construir la nueva cuerda. La última parte es el rango a cuyos mensajes de confirmación se deben dirigir; en este caso, antepongo el texto a cada confirmación en la rama de características.
También puedes sed
lograr esto:
git filter-branch -f --msg-filter 'sed "s/^/bug ###### - /"' master..HEAD
Agregar para confirmar mensajes
El caso para agregar a los mensajes de confirmación podría ser cuando desea agregar los nombres del revisor al mensaje. Agregar es más o menos lo mismo:
git filter-branch -f --msg-filter 'cat echo "[Revisor Walsh]"' master..HEAD
La diferencia aquí es la posición del cat
comando. Todo lo demás puede ser igual.
Tengo una relación de amor/odio con git: me encanta porque es muy fácil para el 90% de mis necesidades, pero lo odio cuando necesito el otro 10%. ¡Esperamos que estos ejemplos te ayuden si te encuentras con esta necesidad en el futuro!
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.
Te podría interesar...