C'è una domanda su SO sulla divisione degli hunk usando magit, e le due soluzioni fornite sono o mettere in scena la regione (segnare una regione, colpire lo stadio), o ridurre / far crescere tutti i pezzi usando +
& -
. Non è quello che sto cercando.
Nel buffer di stato di magit, voglio dividere un pezzo in due blocchi, nel punto, o almeno nelle linee attorno al punto.
Girando questo (scusa la mia cattiva formattazione diff)
@@ blah blah blah
- foo
+ bar
+ baz
+
In
@@ blah blah
- foo
+ bar
@ blah blah
+ baz
Quando il punto è sulla barra.
motivazioni:
baz
essendo una dichiarazione di debug, quindi mi piacerebbe eliminarlo dal commit difoo
ebar
senza liberarmene.bar
edbaz
essere solo parzialmente correlati, nel senso che i loro cambiamenti non dovrebbero essere nello stesso commit.bar
è grande edbaz
è piccolo, rendendo molto più semplice dividere il pezzo piuttosto che selezionarlobar
Simile all'ultimo punto, supponiamo che un commit a 20 righe contenga una riga al centro che non dovrebbe essere messa in scena. Sarebbe più facile dividere e mettere in scena i due hunk superiori e inferiori ignorando quello centrale piuttosto che usare la regione.
Quanto sopra può sorgere a volte quando la presentazione diff separerà il prima e il dopo di qualcosa che è stato modificato, e nel mezzo qualcosa di inutile. per esempio
@@ line
- old_foo
+ random stuff
+ new foo
diff-split-hunk
che fa proprio questo. IOW la tua richiesta è per un modo di usare diff-split-hunk
(o qualcosa di equivalente) dal buffer magit-status.