Use magit para comparar todos los cambios en dos revisiones


8

¿Hay alguna manera de invocar a Ediff desde Magit para comparar los cambios en todos los archivos entre dos revisiones, no solo los cambios en un solo archivo?

Mi caso de uso es que una compañera de trabajo me pedirá que revise los cambios que realizó en una rama, que podrían atropellar varias confirmaciones. Puedo entender fácilmente que su código se ramificó desde la rama principal en la revisión M, pero no estoy seguro de cómo conseguir que Magit compare todo por mí.

Parece que puedo hacerlo M-x magit-logy luego E r <M> <branch name>, pero luego me pide el archivo para comparar. En este caso, hay unos 20 archivos que cambiaron, por lo que será molesto relacionar la E rsecuencia de cada uno. Además, tendría que recordar qué archivos ya he visto.

Idealmente, me gustaría cualquiera de estos:

  • un búfer que enumera cada archivo y me permite hacer clic en él para iniciar ediff, y muestra cuándo he iniciado ediff (o me permite eliminar el archivo del último)
  • iniciar una sesión de ediff para cada archivo modificado, con un búfer que enumera las sesiones y me permite ir a ellas.

Estoy pensando en algo como lo que ediff-directorieshace.

¿Existe esa capacidad?

Esto es diferente de ¿Cómo puedo comparar dos commits en magit? : que quiere ver los cambios en esas dos revisiones. Quiero ver las diferencias en todos los archivos que son diferentes entre esas dos revisiones, independientemente de si el cambio se produjo en la revisión o en un antepasado no común.

Respuestas:


7

Magit puede mostrar la diferencia entre dos commits como un diff . Hay muchas formas de hacerlo, que incluyen:

  • d r START..END RET. Puede ingresar STARTcon la finalización y después de haber escrito .., también puede ingresar ENDcon la finalización.
  • En un registro de utilizar la región para marcar las confirmaciones entre STARTy ENDy tipod d

Lo mismo es compatible cuando se usa Ediff hasta cierto punto, pero como ha notado, también debe seleccionar el archivo que desea comparar. Si bien Ediff proporciona una interfaz de soporte de "sesión", Magit aún no la implementa.

Pero hay un problema abierto sobre esto. Sin embargo, no tiene alta prioridad. Yo no uso a Ediff y su implementación requiere más conocimiento sobre Ediff que sobre Magit. Cualquier ayuda con esta tarea sería apreciada.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.