Há uma pergunta sobre o SO sobre a divisão de blocos usando o magit, e as duas soluções apresentadas são: estágio da região (marcar uma região, estágio de sucesso) ou reduzir / aumentar todos os blocos usando +
& -
. Não é disso que estou procurando.
No buffer de status do magit, quero dividir um pedaço em dois pedaços, no ponto, ou pelo menos nas linhas ao redor do ponto.
Transformando isso (desculpe minha formatação diff ruim)
@@ blah blah blah
- foo
+ bar
+ baz
+
Para dentro
@@ blah blah
- foo
+ bar
@ blah blah
+ baz
Quando o ponto está na barra.
Motivações:
baz
sendo uma instrução de depuração, eu gostaria de removê-la do commit defoo
&bar
sem me livrar dele.bar
ebaz
sendo apenas parcialmente relacionados, o que significa que suas alterações não devem estar no mesmo commit.bar
é grande ebaz
pequeno, tornando muito mais fácil dividir o pedaço em vez de selecionarbar
Semelhante ao último ponto, digamos que um commit de 20 linhas contenha uma única linha no meio que não deve ser preparada. Seria mais fácil dividir e classificar os dois pedaços superiores e inferiores ignorando o meio do que usar a região.
O exposto acima pode surgir algumas vezes quando a apresentação diff separa o antes e o depois de algo que foi modificado e tem algo inútil no meio. por exemplo
@@ line
- old_foo
+ random stuff
+ new foo
diff-split-hunk
que faz exatamente isso. IOW, sua solicitação é uma maneira de usar diff-split-hunk
(ou algo equivalente) do buffer de status do magit.