Estoy trabajando en un proyecto con un equipo donde nos registramos temprano y con frecuencia. Los registros individuales se completan a satisfacción del desarrollador que realiza el cambio (incluidas las pruebas cuando sea posible), pero a veces la dirección del trabajo cambia ligeramente y los compromisos previos deben revertirse y realizarse de otra manera. O bien, el código auxiliar se completa en confirmaciones posteriores.Extraiga los cambios relevantes para la revisión del código
Cuando llega el momento de revisar el código, hay una secuencia de confirmaciones todas etiquetadas con el mismo número de identificación de seguimiento de errores. Es fácil obtener una lista de dichos cambios. Cuando un revisor revisa los cambios uno por uno, a veces habrá una confirmación A que se deshace o modifica mediante una confirmación posterior B como parte de la misma revisión. Esto puede hacer que la revisión sea más difícil.
Si solo un desarrollador estuvo trabajando en el archivo durante la duración del cambio, entonces es fácil hacer una diferencia entre el estado original del archivo y el estado final del archivo. El problema surge cuando otro desarrollador hace cambios no relacionados en el mismo archivo, o incluso en las mismas funciones.
¿Cómo manejas esta situación? ¿Existen herramientas que, dadas una secuencia de parches a un archivo, puedan dar el equivalente moral de una diferencia entre la primera y la última versión, pero solo incluye un subconjunto de esos parches?
Ahora que lo pienso, podría crear una sucursal temporal en git comenzando desde antes del primer cambio relacionado, y seleccionar cuidadosamente los cambios relevantes para la revisión. Con suerte, no habrá demasiados conflictos que deban resolverse (y si los hay, todo el lote debería revisarse de una vez). ¿Alguna otra idea?
Más información: Esto pasa a ser un gran sistema heredado donde un solo cambio puede tocar varios archivos. Los archivos son grandes y crudos, demasiado grandes para simplemente revisar el producto final sin una indicación de lo que podría haber cambiado.
Gracias, este parece ser el enfoque más sólido para nuestra situación. –
De [Jefromi] (http://stackoverflow.com/a/3512492/165495) - El siguiente comando extraerá los cambios de un solo autor en una rama: 'git cherry-pick $ (git log --pretty =% H --author = Alice first_commit..second_commit) '- – Casebash