คำถามติดแท็ก patch

โปรแกรมแก้ไขคือไฟล์ที่ใช้ในการแก้ไขแพ็คเกจซอร์สโค้ดเช่นเพื่อแก้ไขข้อบกพร่องหรือเพิ่มคุณสมบัติ

4
จะแยกและแก้ไขโปรแกรมแก้ไขได้อย่างไร?
บางครั้งฉันต้องแบ่งแพทช์ใหญ่เป็นอันเล็ก ๆ (ไม่รวม) เช่นสำหรับทุกคุณสมบัติที่รวมอยู่ ฉันมักจะทำมันผ่านคำสั่ง vim yank / dd และการสลับหน้าต่างแบบแยก แต่มีเครื่องมือ / vim-tricks ที่ช่วยแก้ไขเช่นนี้หรือไม่? ตัวอย่างเช่นการสนับสนุนคำสั่งเช่น: ย้าย hunks ที่สมบูรณ์ 3 รายการถัดไปไปยังไฟล์ patch ที่เปิดทางด้านขวา
10 vim  patch 

1
หากการย้อนแพตช์สำเร็จหมายความว่าแพทช์ถูกนำไปใช้อย่างสมบูรณ์หรือไม่?
นี้จะสัมผัสกับในสองคำถาม ' ตรวจสอบว่าไฟล์หรือโฟลเดอร์ได้รับการติดตั้งแล้ว ' และ ' ทำให้patchผลตอบแทน 0 เมื่อข้ามแพทช์ใช้แล้ว ' แต่ไม่ได้คำตอบที่น่าพอใจ ฉันกำลังเขียนสคริปต์และต้องการทดสอบโปรแกรมปรับปรุงต่อไปนี้: ใช้อย่างเต็มที่: ดำเนินการต่อ นำไปใช้บางส่วน: ออก ไม่ได้ใช้: ถ้ามันสามารถนำไปใช้ประสบความสำเร็จทำมันและดำเนินการต่อมิฉะนั้นออกจาก ปัญหาคือการจัดการกรณีที่นำไปใช้บางส่วน: mkdir test && cd test cat << EOF > foobar.patch --- /dev/null +++ foo @@ -0,0 +1 @@ +foo --- /dev/null +++ bar @@ -0,0 +1 @@ +bar EOF patch --forward …
9 patch 

2
วิธีรวมไฟล์ใหม่เข้าไปในแพทช์
ฉันพยายามที่จะทำให้แพทช์เป็นแนะนำที่นี่ ว่าฉันมีสองไดเรกทอรีpp1(modified version)และpp0(clean version)ฉันทำไฟล์แก้ไขpp0.patchด้วยdiffคำสั่ง: diff -crB pp0 pp1 > pp0.patch ปัญหาคือถ้ามีไฟล์ใน pp1 เท่านั้นมันจะไม่รวมอยู่ในแพทช์ จะหลีกเลี่ยงมันได้อย่างไร UPDATE : ก่อนอื่นฉันเปลี่ยนเป็นไดเรกทอรีของ pp0 และทดสอบว่าแพตช์จะสำเร็จหรือไม่ patch --dry-run -p1 -i /path-to-pp0.patch แม้ว่าฉันได้เพิ่ม--new-fileไปยังdiffคำสั่งเหล่านั้นเท่านั้นpp1ที่ไม่ได้อยู่ในรายการผลลัพธ์ UPDATE : ฉันได้ทำการแก้ไขไฟล์ผิดโดยบังเอิญ diff -crb --new-file pp1 pp0 > pp0.patch หรือ diff -crNb pp1 pp0 > pp0.patch จะทำ
9 diff  patch 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.