Manchmal muss ich einen großen Patch in kleinere (disjunkte) Patches aufteilen, z. B. für jede einzelne enthaltene Funktion.
Normalerweise mache ich das über Standard-Vim-Yank / DD-Befehle und Split-Window-Switching.
Aber gibt es einige Tools / Vim-Tricks, die bei solchen Bearbeitungen helfen?
Zum Beispiel Unterstützung für Befehle wie: Verschieben Sie die 3 nächsten vollständigen Hunks in die rechts geöffnete Patch-Datei
Antworten:
Vielleicht möchten Sie einen Blick auf Patchutils werfen [1]. Für den vim-Teil habe ich ein kleines vim-Plugin geschrieben, das beim Navigieren in Patches hilft: diff_navigator [2].
[1] http://cyberelk.net/tim/software/patchutils/
[2] http://www.vim.org/scripts/script.php?script_id=2361
quelle
diff_navigator
URL lautet anscheinend vim.org/scripts/script.php?script_id=2361. Emacs hat ähnliche Funktionen im Ediff- und SMerge-ModusEtwas abseits des Themas, denke ich, aber ich denke immer noch, dass es nützlich ist.
Wenn Sie git für Ihre Entwicklung verwenden, können Sie Ihre gesamten Änderungen leicht in kleinere "Hunks" aufteilen, die jeweils eine Funktion enthalten. Sie haben am Ende ein Commit pro Feature und können Git's verwenden
git-format-patch
, um Patches zu erstellen (und sogar zu signieren und richtig zuzuordnen). Ich habe hier beschrieben, wie das gehtquelle
Meine Suse hat
splitdiff
util, der so funktioniert:quelle
Sie können dies verwenden , um den großen Patch in kleinere Blöcke aufzuteilen (entweder pro Datei oder jeden Hunk). Wenn Sie dann zusammenführen müssen, verwenden Sie Combinediff aus dem Patchutils- Paket, das in der Antwort von Petr Uzel erwähnt wurde
quelle