Tengo un repositorio de Git importado originalmente de Subversion. Las partes de la información del autor/compilador son incorrectas, lo que no es culpa de Git, sino que se debe principalmente al compromiso descuidado con Subversion.Uso de git filter-branch para reescribir autores/committers y mensajes de confirmación simultáneamente
Me gustaría usar git filter-branch
para reescribir el historial del repositorio, corrigiendo la información del autor y del autor.
El problema es ... Tengo que sorber información del autor de los mensajes de confirmación . Por lo que puedo decir, git filter-branch
le permite filtrar y alterar la información del autor (con --env-filter
) y/o filtrar los mensajes de confirmación (con --msg-filter
), pero no para hacer ambas cosas simultáneamente, con información compartida entre los diferentes filtros .
Así que estoy algo perplejo acerca de cómo hacer esto ... lo mejor que puedo pensar es hacerlo en varias pasadas: primero, recopilar todos los mensajes de confirmación, luego hacer una secuencia de comandos para filtrar y filtrar toda la información del autor/committer. Esto parece bastante poco elegante y propenso a errores, así que me pregunto si alguien más ha descubierto que hace este tipo de trabajo de manera más fluida.
¡Gracias, Jefromi, voy a intentarlo! Además, un buen punto sobre el orden de --env-filter y --msg-filter: había considerado dejar atrás los archivos temporales como sugieres, pero me di cuenta de que no funcionaría en el orden que yo quería. –