<ก่อนหน้านี้ | Contents | ถัดไป>
ปะ
การขอ ปะ โปรแกรมใช้สำหรับการเปลี่ยนแปลงไฟล์ข้อความ รับเอาท์พุตจาก diff และมักใช้เพื่อแปลงไฟล์เวอร์ชันเก่าเป็นเวอร์ชันใหม่กว่า ลองพิจารณาตัวอย่างที่มีชื่อเสียง เคอร์เนลลินุกซ์ได้รับการพัฒนาโดยทีมงานขนาดใหญ่ของ
ผู้ร่วมให้ข้อมูลที่ส่งกระแสการเปลี่ยนแปลงเล็กน้อยไปยังซอร์สโค้ดอย่างต่อเนื่อง เคอร์เนล Linux ประกอบด้วยโค้ดหลายล้านบรรทัด ในขณะที่การเปลี่ยนแปลงที่ทำโดยผู้มีส่วนร่วมเพียงคนเดียวในคราวเดียวนั้นค่อนข้างเล็ก ผู้ร่วมให้ข้อมูลไม่สมเหตุสมผลเลยที่จะส่งแผนผังต้นทางเคอร์เนลทั้งหมดให้กับนักพัฒนาแต่ละรายทุกครั้งที่มีการเปลี่ยนแปลงเล็กน้อย แทนที่จะส่งไฟล์ diff ไฟล์ diff ประกอบด้วยการเปลี่ยนแปลงจากเคอร์เนลเวอร์ชันก่อนหน้าเป็นเวอร์ชันใหม่โดยมีการเปลี่ยนแปลงของผู้มีส่วนร่วม ผู้รับจะใช้คำสั่ง ปะ โปรแกรมเพื่อใช้การเปลี่ยนแปลงกับแผนผังต้นทางของเขาเอง โดยใช้ diff/ปะ มีข้อดีที่สำคัญสองประการ:
1. ไฟล์ diff มีขนาดเล็กมาก เมื่อเทียบกับขนาดเต็มของแผนผังต้นทาง
2. ไฟล์ diff จะแสดงการเปลี่ยนแปลงที่เกิดขึ้นอย่างกระชับ ซึ่งช่วยให้ผู้ตรวจสอบโปรแกรมแก้ไขสามารถประเมินได้อย่างรวดเร็ว
แน่นอน diff/ปะ จะทำงานกับไฟล์ข้อความใด ๆ ไม่ใช่แค่ซอร์สโค้ด มันจะใช้ได้กับไฟล์การกำหนดค่าหรือข้อความอื่น ๆ อย่างเท่าเทียมกัน
เพื่อเตรียมไฟล์ diff สำหรับใช้กับ ปะเอกสาร GNU (ดูเพิ่มเติมด้านล่าง) แนะนำให้ใช้ diff ดังต่อไปนี้:
ความแตกต่าง -Naur old_file ใหม่_file > diff_file.dif
ที่ไหน old_file และ new_file เป็นไฟล์เดียวหรือไดเร็กทอรีที่มีไฟล์ NS r
ตัวเลือกรองรับการเรียกซ้ำของแผนผังไดเร็กทอรี
เมื่อสร้างไฟล์ diff แล้ว เราสามารถนำไปใช้กับไฟล์เก่าในการแก้ไขไฟล์ใหม่ได้:
ปะ diff_file.dif
เราจะสาธิตด้วยไฟล์ทดสอบของเรา:
[me@linuxbox ~]$ diff -Naur file1.txt file2.txt > patchfile.txt
[me@linuxbox ~]$ แพทช์ < patchfile.txt
ไฟล์แก้ไข file1.txt [me@linuxbox ~]$ ไฟล์ cat1.txt b
cde
[me@linuxbox ~]$ diff -Naur file1.txt file2.txt > patchfile.txt
[me@linuxbox ~]$ แพทช์ < patchfile.txt
ไฟล์แก้ไข file1.txt [me@linuxbox ~]$ ไฟล์ cat1.txt b
cde
ในตัวอย่างนี้ เราได้สร้างไฟล์ diff ชื่อ patchfile.txt แล้วใช้ ปะ โปรแกรมที่จะใช้แพทช์ โปรดทราบว่าเราไม่ต้องระบุไฟล์เป้าหมายเป็น ปะเนื่องจากไฟล์ diff (ในรูปแบบรวม) มีชื่อไฟล์อยู่ในส่วนหัวอยู่แล้ว พอลงแพตช์แล้วจะเห็นว่า ไฟล์ 1.txt ตอนนี้ตรงกัน ไฟล์ 2.txt.
แพตช์มีตัวเลือกมากมาย และยังมีโปรแกรมยูทิลิตี้เพิ่มเติมที่สามารถใช้ในการวิเคราะห์และแก้ไขแพตช์