จะแยกและแก้ไขโปรแกรมแก้ไขได้อย่างไร?


10

บางครั้งฉันต้องแบ่งแพทช์ใหญ่เป็นอันเล็ก ๆ (ไม่รวม) เช่นสำหรับทุกคุณสมบัติที่รวมอยู่

ฉันมักจะทำมันผ่านคำสั่ง vim yank / dd และการสลับหน้าต่างแบบแยก

แต่มีเครื่องมือ / vim-tricks ที่ช่วยแก้ไขเช่นนี้หรือไม่?

ตัวอย่างเช่นการสนับสนุนคำสั่งเช่น: ย้าย hunks ที่สมบูรณ์ 3 รายการถัดไปไปยังไฟล์ patch ที่เปิดทางด้านขวา


คุณอาจต้องการดูunix.stackexchange.com/questions/618/how-to-merge-patches
Maciej Piechotka

1
BTW ทำไมผู้คนถึงตอบคำถาม แต่ไม่พบว่ามีประโยชน์ / ชัดเจนพอที่จะโหวตได้!? ;)
maxschlepzig

คำตอบ:


7

คุณอาจต้องการดู patchutils [1] สำหรับส่วนที่เป็นกลุ่มฉันเขียนปลั๊กอินกลุ่มเล็ก ๆ ที่ช่วยในการนำทางเป็นหย่อม ๆ : diff_navigator [2]

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

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


1
diff_navigatorURL ที่เห็นได้ชัดคือvim.org/scripts/script.php?script_id=2361 Emacs มีคุณสมบัติที่คล้ายกันในEdiffและ SMerge โหมด
คาร์โด้ Murri

2
คุณช่วยขยายคำตอบให้ครอบคลุมมากขึ้นได้ไหม? การเพิ่มตัวอย่างวิธีใช้ยูทิลิตีใดจาก patchutils ที่ตั้งเพื่อแยก patch ขนาดใหญ่ออกเป็นส่วนที่แยกจากกันจะดีมาก ...
maxschlepzig

5

ค่อนข้างนอกหัวข้อฉันเดา แต่ฉันก็ยังคิดว่ามันมีประโยชน์

หากคุณใช้คอมไพล์ในการพัฒนาคุณสามารถแบ่งการเปลี่ยนแปลงทั้งหมดของคุณให้กลายเป็น "นักล่า" ที่มีขนาดเล็กลงซึ่งรวบรวมคุณลักษณะแต่ละอย่างไว้ด้วยกัน คุณจบลงด้วยหนึ่งกระทำต่อคุณสมบัติและสามารถใช้คอมไพล์git-format-patchเพื่อสร้าง (และแม้กระทั่งการลงชื่อและคุณลักษณะที่ถูกต้อง) แพทช์ฉันอธิบายวิธีการทำที่นี่


3

My Suse ได้ใช้splitdiffซึ่งทำงานเช่นนี้:

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

0

คุณสามารถใช้สิ่งนี้เพื่อแบ่งแพทช์ใหญ่เป็นชิ้นเล็ก ๆ (ต่อไฟล์หรือทุก ๆ ก้อน) และถ้าคุณต้องการผสานจากนั้นใช้คอมฟิกซ์แบบรวมจากแพ็คเกจแพตเทจที่กล่าวถึงในคำตอบของ Petr Uzel

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.