Na SO jest pytanie o dzielenie kawałków za pomocą magitów, a dwa podane rozwiązania to albo wyodrębnienie regionu (oznaczenie regionu, etap trafienia), albo zmniejszenie / powiększenie wszystkich kawałków za pomocą +
& -
. Nie o to mi chodzi.
W buforze stanu magita chcę podzielić przystojniak na dwa przystojniaki, w punkcie lub przynajmniej w liniach wokół punktu.
Włączam to (przepraszam za złe formatowanie diff)
@@ blah blah blah
- foo
+ bar
+ baz
+
W
@@ blah blah
- foo
+ bar
@ blah blah
+ baz
Gdy punkt znajduje się na pasku.
Motywacje:
baz
będąc instrukcją debugowania, więc chciałbym usunąć ją z zatwierdzeniafoo
ibar
bez pozbycia się go.bar
ibaz
są tylko częściowo powiązane, co oznacza, że ich zmiany nie powinny być w tym samym zatwierdzeniu.bar
jest duży ibaz
jest mały, dzięki czemu łatwiej jest podzielić przystojniak niż wybraćbar
Podobnie jak w ostatnim punkcie, powiedzmy, że zatwierdzenie 20 linii zawiera pojedynczą linię pośrodku, której nie należy ustawiać. Łatwiej byłoby podzielić i wystawić górną i dolną część dwóch przystojniaków, ignorując środkową, niż skorzystać z regionu.
Powyższe może pojawić się czasami, gdy prezentacja różnicowa oddzieli przed i po czymś, co zostało zmodyfikowane, i będzie miała coś nieprzydatnego w środku. na przykład
@@ line
- old_foo
+ random stuff
+ new foo
diff-split-hunk
które właśnie to robi. IOW twoja prośba dotyczy sposobu użycia diff-split-hunk
(lub czegoś równoważnego) z bufora statusu magit.