Magit: come mostrare le differenze all'interno delle linee


13

Ho un file, apporto alcune modifiche. Ecco come SmartGit mostra differenze.

SmartGit

Come puoi vedere mostra dove si trova la differenza all'interno della linea. Cambia lo sfondo in rosso in posizione concreta. Ed è molto buono. Non ho bisogno di perdere tempo per trovare le differenze. Vedo subito dov'è la differenza.

Ora come appare in Magit:

inserisci qui la descrizione dell'immagine

Come puoi vedere Magit dice che la differenza era nella linea INTERA. Non mostra dove si trova la differenza all'interno della linea. Quindi devo trovare la differenza manualmente. Devo farlo ogni volta. Non è molto comparabile. Supponiamo che io abbia differenze in 20 righe. Ho bisogno di passare molto tempo per trovare ciò che è realmente cambiato. Non va molto bene

Magit può mostrare differenze nella colonna effettiva in cui si trova la modifica? Come in SmartGit.

Risposte:


2

Se vuoi memorizzarlo nella tua configurazione, come me, basta aggiungere

(setq magit-diff-refine-hunk (quote all))

alla tua .emacs.d/init.el


Questo è stato ispirato dalla risposta di phils .


16

M-x customize-option RET magit-diff-refine-hunk RET

Vedere anche il magit-diff-toggle-refine-hunkcomando, associato a Dt, che è possibile utilizzare per impostare il comportamento nel buffer corrente. Utilizzare DC-utper attivare il perfezionamento per tutti gli hunk nel buffer; in caso contrario, vengono visualizzati solo i perfezionamenti per il pezzo attualmente selezionato in qualsiasi momento (aggiornando mentre ci si sposta da un pezzo all'altro).

Per configurare l'aspetto delle regioni raffinati "del diff, l'uso M-x customize-faceper i diff-refine-added, diff-refine-changede diff-refine-removedle facce.


1

Perché le diff di parole funzionino, magit deve essere in grado di usare l' diffeseguibile.

Quindi assicurati che M-x ielm RET (executable-find "diff") RETnon ritorni nil. Se ritorna nilaggiungi il percorso alla cartella contenente il tuo eseguibile diff nella exec-pathvariabile conM-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

Successivamente devi assicurarti che magit stia effettivamente usando quell'eseguibile diff. Per questo inserisci un buffer di stato magit, premi De assicurati che -x Disallow external diff drivers (--no-ext-diff)sia disabilitato. Altrimenti disabilitarlo con -x, impostarlo come predefinito con se quindi salvare i valori predefiniti con Dw.

Al termine, è possibile utilizzare Dtl' magit-diff-refine-hunkopzione per attivare il buffer corrente o seguire questa risposta da phils per rendere questa impostazione più permanente.


0

Prova ediff-toggle-ignore-caseo compare-ignore-casevariabile. Suppongo che il tuo motore diff stia ignorando il caso. Potrebbe anche essere in opzioni diff (non sono sicuro di quali siano le impostazioni).

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.