Usa magit per confrontare tutte le modifiche in due revisioni


8

C'è un modo per invocare Ediff da Magit al fine di confrontare le modifiche a tutti i file tra due revisioni, non solo le modifiche in un singolo file?

Il mio caso d'uso è che un collega mi chiederà di rivedere le modifiche che ha fatto in una filiale, che potrebbe incorrere in diversi commit. Posso facilmente capire che il suo codice si è ramificato dal ramo principale alla revisione M, ma non sono sicuro di come ottenere Magit per confrontare tutto per me.

Sembra che io possa fare M-x magit-loge poi E r <M> <branch name>, ma poi mi chiede di confrontare il file. In questo caso, ci sono circa 20 file che sono cambiati, quindi sarà fastidioso correlare la E rsequenza per ciascuno. Inoltre, dovrei ricordare quali file ho già visto.

Idealmente, vorrei uno di questi:

  • un buffer che elenca ogni file e mi consente di fare clic su di esso per avviare ediff e mostra quando ho avviato ediff (o mi consente di eliminare il file dall'ultimo)
  • avviare una sessione ediff per ogni file modificato, con un buffer che elenca le sessioni e mi consente di accedervi.

Sto pensando a qualcosa di simile a ciò che ediff-directoriesfa.

Questa capacità esiste?

Questo è diverso da Come posso confrontare due commit in magit? : che vuole vedere i cambiamenti in quelle due revisioni. Voglio esaminare le differenze in tutti i file che sono diverse tra quelle due revisioni, indipendentemente dal fatto che la modifica si sia verificata nella revisione o in un antenato non comune.

Risposte:


7

Magit può mostrare la differenza tra due commit come diff . Esistono molti modi per farlo, tra cui:

  • d r START..END RET. Puoi inserire STARTcon completamento e dopo aver digitato ..puoi anche inserire ENDcon completamento.
  • In un registro utilizzare la regione per contrassegnare i commit tra STARTe ENDe digitared d

Lo stesso è supportato quando si utilizza Ediff in qualche modo, ma come hai notato, è necessario selezionare anche il file che si desidera confrontare. Mentre Ediff fornisce un'interfaccia di supporto "sessione", Magit non lo implementa ancora.

Ma c'è un problema aperto su questo. Non ha comunque la massima priorità. Non uso Ediff da solo e l'implementazione richiede più conoscenza di Ediff che di Magit. Qualsiasi aiuto con questo compito sarebbe apprezzato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.