เครื่องมือสำคัญสองอย่างในการพัฒนาซอฟต์แวร์คือPatchและDiffวิธีการทำงานของมันไม่ใช่เรื่องลึกลับ แต่ผมคิดว่านี่จะเป็นบทความที่น่าสนใจ 😉
ทั้งสองมีประสิทธิภาพมากและนี่ก็เหมือนกับการสัมผัสพื้นผิวพวกมันมียูทิลิตี้และฟังก์ชั่นอื่น ๆ โดยพื้นฐานแล้วด้วยเครื่องมือทั้งสองนี้เราสามารถสร้างการควบคุมเวอร์ชัน
diff
เราอ้างถึงการเปรียบเทียบโดยเปรียบเทียบไฟล์ "ต้นฉบับ" กับไฟล์ "ใหม่" และแจ้งให้เราทราบถึงความแตกต่างระหว่างไฟล์เหล่านี้ เครื่องมือนี้ยังช่วยให้เราสามารถสร้างไฟล์. แพตช์ที่เราใช้ในการสร้างแพตช์สำหรับโปรแกรมของเรา
ปะ
เป็นคำสั่งที่เรา "แก้ไข" ไฟล์ต้นฉบับของเราอย่างแท้จริงเพิ่มและ / หรือลบบรรทัดตามคำแนะนำที่มีอยู่ในไฟล์. patch
นอกจากนี้ยังมีvimdiffซึ่งเป็นเครื่องมือแบบภาพสำหรับใช้แก้ไขโดยไม่ต้องใช้ไฟล์ .patch เพราะมันจะเปรียบเทียบเวอร์ชัน "ดั้งเดิม" และ "ใหม่" และช่วยให้คุณแก้ไขทีละบรรทัดหรือทั้งเอกสารภายในไฟล์เดียวกันได้ ผมจะไม่ขออธิบายรายละเอียด แต่ผมคิดว่ามันคุ้มค่าที่จะกล่าวถึง
ตัวอย่าง
ตอนนี้ความสนุกคือ ตัวอย่าง!
ในกรณีนี้เรามีสคริปต์ที่ยอดเยี่ยมที่ถามชื่อและอายุของคุณหากคุณอายุเกิน 18 ปีจะบอกคุณว่าคุณสามารถลงคะแนนได้มิฉะนั้นจะบอกคุณว่าคุณไม่สามารถลงคะแนนได้
ต้นฉบับ.sh
#! / bin / bash echo "Enter your name:" read name echo "Enter your age:" read age if [[18 -lt $ age]] จากนั้น echo "สวัสดี $ name คุณอายุ $ แล้วและคุณสามารถโหวตได้! " else echo "สวัสดี $ name คุณอายุ $ และคุณไม่สามารถโหวต ... " fi
รูปภาพของรหัสใน Vim
เสร็จแล้วนี่คือสคริปต์ที่กำลังทำงานอยู่:
ทุกอย่างดูเหมือนจะทำงานได้ดี
ดังนั้นในฐานะผู้ใช้ที่ดีเราจึงแชร์สคริปต์ของเรากับเพื่อน :) แต่เราได้รับข้อความแจ้งว่ามีข้อบกพร่องเมื่ออายุครบ 18 ปีมันบอกว่าไม่สามารถลงคะแนนได้เมื่อควร
ข้อผิดพลาดทางลอจิก
ตอนนี้เราเริ่มแก้ไขข้อผิดพลาดเล็ก ๆ น้อย ๆ และทำการแก้ไขเล็กน้อย ...
new.sh
#! / bin / bash maxAge = 18 echo "ป้อนชื่อของคุณ:"; อ่านชื่อก้อง "เขียนอายุของคุณ:"; อ่านอายุถ้า [[$ maxAge -le $ age]]; จากนั้นให้ก้อง "สวัสดีชื่อ $ คุณอายุ $ ปีและคุณสามารถลงคะแนนได้!" else echo "สวัสดีชื่อ $ คุณอายุ $ ปีและคุณไม่สามารถลงคะแนน ... " fi exit 0
โค้ดใหม่ที่เขียนด้วยVim
สมมติว่าสคริปต์มีน้ำหนักมาก ดังนั้น เพื่อหลีกเลี่ยงการส่งสคริปต์ทั้งหมดอีกครั้ง เราจึงสร้าง .patch
$ diff -u original.sh new.sh> patch.patch
และตอนนี้เราก็ได้แพทช์ของเราแล้ว นี่คือตัวอย่างในVim :
นี่คือลักษณะของคำแนะนำสำหรับ. แพทช์ เส้นที่ไม่มีการแก้ไขเป็นสีขาวเป็นสีฟ้าเส้นที่ถูกลบออกเป็นสีส้ม
ในการใช้งาน เราเพียงแค่ใช้ไฟล์ .patch ในสคริปต์ที่ต้องการแก้ไข ในที่นี้ชื่อว่าoriginalAmigo.shซึ่งเป็นสำเนาที่เหมือนกันทุกประการของ สคริปต์ original.sh
สคริปต์เพื่อน
$ patch originalFriend.sh <patch.patch
และนี่จะทำให้ ไฟล์ originalAmigo.sh ของเรา มีสภาพดังนี้:
สคริปต์เพื่อนหลังจากใช้โปรแกรมแก้ไข
อย่างที่คุณเห็นมันง่ายมากที่จะได้รับความแตกต่างและใช้แพทช์ ทั้งหมดนี้มาจากฉัน
สวัสดีทุกคนเราจะอ่านในวันศุกร์หน้า