Иногда мне нужно разбить большой патч на меньший (непересекающийся), например, для каждой отдельной включенной функции.
Обычно я делаю это через стандартные команды vim yank / dd и переключение через разделенное окно.
Но есть ли какие-нибудь инструменты / vim-tricks, чтобы помочь с таким редактированием?
Например, поддержка таких команд, как: переместить 3 следующих полных блока в правый открытый файл патча.
Ответы:
Возможно, вы захотите взглянуть на patchutils [1]. Для части vim я написал небольшой плагин vim, который помогает с навигацией в патчах: diff_navigator [2].
[1] http://cyberelk.net/tim/software/patchutils/
[2] http://www.vim.org/scripts/script.php?script_id=2361
источник
diff_navigator
URL, по- видимому vim.org/scripts/script.php?script_id=2361 Emacs имеет сходные черты в Ediff режимах и SMergeЯ думаю, что это немного не по теме, но я все еще думаю, что это полезно.
Если вы используете git для своей разработки, вы можете легко разделить все ваши изменения на более мелкие «кусочки», каждый из которых содержит одну особенность. Вы в конечном итоге с одной фиксации на функции и может использовать Git и
git-format-patch
создавать (и даже подписать и надлежащим образом атрибутов) пятна, я обрисовал , как сделать это здесьисточник
У моего Suse есть
splitdiff
утилита, которая работает так:источник
Вы можете использовать это, чтобы разделить большой патч на более мелкие куски (либо на файл, либо на каждый кусок), а затем, если вам нужно объединить, тогда используйте командуiffiff из пакета patchutils , который был упомянут в ответе Петра Узела.
источник