Bagaimana cara membagi dan mengedit tambalan?

10

Terkadang saya perlu membagi tambalan besar menjadi yang lebih kecil (terpisah), misalnya untuk setiap fitur terpisah yang disertakan.

Biasanya saya melakukannya melalui perintah vim yank / dd standar dan split-window switching.

Tetapi apakah ada beberapa alat / trik vim untuk membantu pengeditan seperti itu?

Misalnya dukungan untuk perintah seperti: pindahkan 3 bakhil lengkap berikutnya ke kanan membuka file tambalan

maxschlepzig
sumber
Anda mungkin ingin juga melihat di unix.stackexchange.com/questions/618/how-to-merge-patches
Maciej Piechotka
1
BTW, bagaimana bisa orang menjawab pertanyaan tetapi tidak merasa berguna / cukup jelas untuk memutakhirkannya?!? ;)
maxschlepzig

Jawaban:

7

Anda mungkin ingin melihat ke dalam tambalan [1]. Untuk bagian vim, saya menulis sebuah plugin vim kecil yang membantu menavigasi dalam tambalan: diff_navigator [2].

[1] http://cyberelk.net/tim/software/patchutils/

[2] http://www.vim.org/scripts/script.php?script_id=2361

Petr Uzel
sumber
1
The diff_navigatorURL tampaknya vim.org/scripts/script.php?script_id=2361 Emacs memiliki fitur serupa di Ediff mode dan SMerge
Riccardo Murri
2
Bisakah Anda memperluas jawaban Anda untuk membuatnya lebih komprehensif? Menambahkan contoh cara menggunakan utilitas apa dari patchutils yang diatur untuk membagi patch besar menjadi yang terputus-putus akan sangat bagus ...
maxschlepzig
5

Agak di luar topik, saya kira tapi saya masih berpikir itu berguna.

Jika Anda menggunakan git untuk melakukan pengembangan, Anda dapat dengan mudah membagi seluruh perubahan menjadi "bakhil" kecil yang masing-masing memiliki satu fitur. Anda berakhir dengan satu komit per fitur dan dapat menggunakan git git-format-patchuntuk membuat (dan bahkan menandatangani dan atribut dengan benar) tambalan, saya menguraikan bagaimana melakukannya di sini

tante
sumber
3

Suse saya memiliki splitdiffutil yang berfungsi seperti ini:

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002
akond
sumber
0

Anda dapat menggunakan ini untuk membagi tambalan besar ke bongkahan kecil (baik per file atau setiap bingkah) dan kemudian jika Anda perlu menggabungkan kemudian menggunakan gabunganiff dari paket patchutils yang disebutkan dalam jawaban Petr Uzel

Dror Cohen
sumber