Un caso in cui potresti legittimamente preoccuparti è quando vuoi distinguere tra "vecchio" errore di spaziatura bianca (che potresti voler mantenere per motivi legacy) e "nuovo" errori di spazio bianco (che vuoi evitare).
A tal fine, Git 2.5+ (Q2 2015) proporrà un'opzione più specifica per il rilevamento degli spazi.
Vedere i commit 0e383e1 , 0ad782f e d55ef3e [26 maggio 2015] di Junio C Hamano ( gitster
) .
(Fusa da Junio nel commit 709cd91 , 11 giugno 2015)
diff.c
: --ws-error-highlight=<kind>
opzione
Tradizionalmente, ci interessavano solo le rotture degli spazi bianchi introdotte nelle nuove righe.
Alcune persone vogliono dipingere anche le rotture di spazi bianchi su vecchie linee. Quando vedono una rottura di spazi bianchi su una nuova riga, possono individuare lo stesso tipo di interruzioni di spazi bianchi sulla vecchia riga corrispondente e vogliono dire "Ah, quelle rotture ci sono ma sono state ereditate dall'originale, quindi non toccatele per adesso."
Introdurre --ws-error-highlight=<kind>
l'opzione, che permette loro di passare una virgola elenco di separati old
, new
e context
di specificare quali linee per evidenziare gli spazi errori su.
La documentazione ora include :
--ws-error-highlight=<kind>
Evidenzia gli errori di spazi bianchi sulle linee specificate da <kind>
nel colore specificato da color.diff.whitespace
.
<kind>
è un elenco separato da virgole old
, new
, context
.
Quando questa opzione non è data, new
vengono evidenziati solo gli errori di spazi bianchi nelle righe.
Ad esempio, --ws-error-highlight=new,old
evidenzia gli errori di spazi bianchi su entrambe le righe eliminate e aggiunte.
all
può essere usato come abbreviazione per old,new,context
.
Ad esempio, il vecchio commit aveva un errore di spazio bianco ( bbb
), ma puoi concentrarti solo sui nuovi errori (alla fine di still bbb
e ccc
):
(test fatto dopo t/t4015-diff-whitespace.sh
)
Con Git 2.26 (Q1 2020), la diff-*
famiglia di sottocomandi idraulici ora presta attenzione alla diff.wsErrorHighlight
configurazione, che è stata ignorata in precedenza; questo permette a " git add -p
" di mostrare anche i problemi di spazi vuoti all'utente finale.
Vedere commit da80635 (31 gennaio 2020) di Jeff King ( peff
) .
(Fuso da Junio C Hamano - gitster
- in commit df04a31 , 14 febbraio 2020)
diff
: sposta diff.wsErrorHighlight nella configurazione "base"
Firmato da: Jeff King
Analizziamo diff.wsErrorHighlight in git_diff_ui_config()
, il che significa che non ha effetto per i comandi idraulici, solo per porcellane come lei git diff
.
Questo è leggermente fastidioso in quanto significa che script come add--interactive
, che producono un diff visibile dall'utente con il colore, non rispettano l'opzione .
Potremmo insegnare a quello script ad analizzare la configurazione e passarla --ws-error-highlight
al sistema idraulico diff. Ma c'è una soluzione più semplice.
Dovrebbe essere ragionevolmente sicuro per l'impianto idraulico rispettare questa opzione, poiché entra in funzione solo quando il colore è altrimenti abilitato. E chiunque analizzi l'output colorato deve già occuparsi del fatto che color.diff.*
potrebbe cambiare l'esatto output che vede; queste opzioni sono state parte di git_diff_basic_config()
sin dal suo inizio in 9a1805a872 (aggiungere un callback di configurazione diff "di base", 2008-01-04, Git v1.5.4-rc3).
Quindi possiamo semplicemente spostarlo nella configurazione "di base", che corregge add--interactive
, insieme a qualsiasi altro script nella stessa barca, con un rischio molto basso di danneggiare gli utenti idraulici.