Есть вопрос к SO о расщеплении фрагментов с помощью magit, и два приведенных решения - либо расположить регион (отметить регион, этап попадания), либо сократить / увеличить все фрагменты, используя +
& -
. Это не то, что я после.
В буфере статуса magit я хочу разделить кусок на два фрагмента, в точке или, по крайней мере, в линиях вокруг точки.
Включаю это (извините за плохое форматирование различий)
@@ blah blah blah
- foo
+ bar
+ baz
+
В
@@ blah blah
- foo
+ bar
@ blah blah
+ baz
Когда точка находится на панели.
Мотивы:
baz
будучи отладочным оператором, я бы хотел исключить его из коммитаfoo
& иbar
не избавляться от него.bar
иbaz
будучи только частично связанными, это означает, что их изменения не должны быть в одном коммите.bar
является большим иbaz
маленьким, что делает гораздо проще разделить кусок, чем выбратьbar
Аналогично последней точке, скажем, фиксация из 20 строк содержит одну строку в середине, которую не следует ставить. Было бы легче разделить и поставить два верхних и нижних куска, игнорируя средний, чем использовать регион.
Вышеописанное может иногда возникать, когда представление diff будет отделять до и после чего-то, что было изменено, и иметь что-то бесполезное в середине. например
@@ line
- old_foo
+ random stuff
+ new foo
diff-split-hunk
которая делает именно это. IOW ваш запрос на способ использования diff-split-hunk
(или что-то эквивалентное) из буфера magit-status.