นี่คือคำสั่ง makepatchp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
makepatch - สร้างสคริปต์เพื่ออัปเดตแผนผังต้นทาง
เรื่องย่อ
ทำแพทช์ [ ตัวเลือก ] เก่า-src ใหม่-src
บทนำ
ตามเนื้อผ้า ต้นไม้ต้นทางจะได้รับการอัปเดตด้วย ปะ โปรแกรม แพตช์ประมวลผล
ข้อมูลที่สร้างขึ้นโดย diff โปรแกรม. แม้ว่า diff และ ปะ ทำดีมาก
งานในการแก้ไขเนื้อหาไฟล์ เวอร์ชันส่วนใหญ่ไม่รองรับการสร้างและการลบไฟล์และ
ไดเร็กทอรีและการปรับโหมดไฟล์และการประทับเวลา เวอร์ชันที่ใหม่กว่าของ diff และ ปะ
ดูเหมือนว่าจะสามารถสร้างไฟล์และเวอร์ชันใหม่ ๆ ของ ปะ สามารถลบไฟล์. แต่
เกี่ยวกับมัน.
ปัญหาทั่วไปอีกประการหนึ่งคือโดยทั่วไปแล้วแพตช์คิทจะถูกดาวน์โหลดจากอินเทอร์เน็ตหรือ
ส่งทางไปรษณีย์อิเล็กทรอนิกส์ บ่อยครั้งควรตรวจสอบความถูกต้องของ a
ชุดแพทช์ก่อนที่จะพยายามใช้
การขอ ทำแพทช์ แพ็คเกจถูกออกแบบมาเพื่อเอาชนะข้อจำกัดเหล่านี้
DESCRIPTION
การขอ ทำแพทช์ แพ็คเกจประกอบด้วยโปรแกรม Perl สองโปรแกรม: ทำแพทช์ และ สมัครแพตช์.
ทำแพทช์ จะสร้างชุดโปรแกรมแก้ไขจากทรีต้นทางสองต้น มันข้ามแหล่งที่มา
ไดเร็กทอรีและรัน a diff ในแต่ละคู่ของไฟล์ที่เกี่ยวข้อง รวบรวมเอาท์พุต
ลงในชุดแพทช์ มันรู้เกี่ยวกับข้อตกลงสำหรับแพตช์คิท: ถ้าไฟล์ชื่อ
"patchlevel.h" มีอยู่แล้ว จัดการก่อน ดังนั้น ปะ สามารถตรวจสอบเวอร์ชันของแหล่งที่มาได้
ต้นไม้. นอกจากนี้ เพื่อจัดการกับเวอร์ชันที่ไม่สมบูรณ์ของ ปะ ที่กำลังใช้งานอยู่ก็จัดหา
บรรทัด ""Index:"" และ "Prereq:" ดังนั้น ปะ สามารถระบุตำแหน่งไฟล์ที่จะแก้ไขได้อย่างถูกต้องและมัน
ย้ายแพตช์ไปยังไดเร็กทอรีปัจจุบันเพื่อหลีกเลี่ยงปัญหาในการสร้างไฟล์ใหม่
รายการของไฟล์สามารถระบุได้ในสิ่งที่เรียกว่า MANIFEST ไฟล์ แต่ก็สามารถ
สร้างขึ้นโดยการสำรวจต้นไม้ต้นทางแบบเรียกซ้ำ ไฟล์สามารถแยกออกได้โดยใช้ shell
รูปแบบสัญลักษณ์แทนและรูปแบบ Perl regex
แต่นั่นไม่ใช่มัน! ทำแพทช์ ยังแทรกข้อมูลเพิ่มเติมบางอย่างในชุดโปรแกรมแก้ไข
สำหรับการใช้งานโดย สมัครแพตช์ โครงการ
สิ่งสำคัญคือต้องเน้นว่าชุดโปรแกรมแก้ไขที่สร้างขึ้นยังคงเป็นข้อมูลที่ถูกต้องสำหรับ ปะ.
เมื่อใช้กับ ปะ, ไม่มีการตรวจสอบและปัญหาที่อาจเกิดขึ้นเมื่อไฟล์ใหม่
จำเป็นต้องสร้าง ทำแพทช์ ต่อท้ายเชลล์สคริปต์ขนาดเล็กที่ด้านหน้าของแพตช์คิทที่
สร้างไฟล์และไดเร็กทอรีที่จำเป็นสำหรับกระบวนการแพตช์ ถ้าวิ่งไม่ได้
สมัครแพตช์ ด้วยเหตุผลบางอย่าง คุณสามารถเรียกใช้ patch kit ได้ as a เปลือกหอย ต้นฉบับ เพื่อเตรียมไฟล์
ไดเร็กทอรีซอร์สสำหรับกระบวนการแพตช์
การขอ สมัครแพตช์ โปรแกรมจะทำสิ่งต่อไปนี้:
· จะตรวจสอบอย่างละเอียดว่าชุดโปรแกรมแก้ไขนั้นสมบูรณ์และไม่เสียหายในระหว่าง
โอน.
· จะใช้ฮิวริสติกเพื่อตรวจสอบว่าไดเร็กทอรีที่แพตช์จะเป็น
นำไปใช้จริงมีแหล่งที่คาดหวัง
· สร้างไฟล์และไดเร็กทอรีตามความจำเป็น
·ใช้โปรแกรมแก้ไขโดยเรียกใช้ ปะ โครงการ
· เมื่อเสร็จสิ้น ไฟล์ที่ล้าสมัย ไดเร็กทอรีและไฟล์ ".orig" จะถูกลบออก โหมดไฟล์
ของไฟล์ใหม่ถูกตั้งค่า และการประทับเวลาของไฟล์ที่แพตช์ทั้งหมดจะถูกปรับ
โปรดทราบว่า สมัครแพตช์ ต้องการเพียง ปะ โปรแกรม. ไม่พึ่งเปลือกหรือเปลือก
เครื่องมือ ทำให้สามารถใช้แพตช์กับระบบที่ไม่ใช่ Unix ได้
ทั่วไป การใช้
สมมติว่าคุณมีไฟล์เก็บถาวร `"pkg-1.6.tar.gz"' ซึ่งมีแหล่งที่มาสำหรับแพ็คเกจ `"pkg"'
เวอร์ชัน 1.6 และแผนผังไดเร็กทอรี `"pkg-1.7"' ที่มีแหล่งที่มาสำหรับเวอร์ชัน 1.7 NS
คำสั่งต่อไปนี้จะสร้างชุดโปรแกรมแก้ไขที่อัปเดตแหล่งที่มา 1.6 เป็น1.7
รุ่น:
makepatch pkg-1.6.tar.gz pkg-1.7 > pkg-1.6-1.7.patch
หากต้องการใช้สคริปต์นี้ ให้ไปที่ไดเร็กทอรีที่มีแหล่งที่มา 1.6 และป้อนสคริปต์
ไปยัง สมัครแพตช์:
cd เก่า/pkg-1.6
Applypatch pkg-1.6-1.7.patch
สมัครแพตช์ จะตรวจสอบว่าดำเนินการถูกที่และดำเนินการที่จำเป็นทั้งหมด
การปรับปรุง
โดยค่าเริ่มต้น ทำแพทช์ จะให้ข้อมูลความคืบหน้าสองสามบรรทัดเช่น:
กำลังแยก pkg-1.6.tar.gz เป็น /tmp/mp21575.d/old...
Manifest MANIFEST สำหรับ pkg-1.6 มี 1083 ไฟล์
Manifest MANIFEST สำหรับ pkg-1.7 มี 1292 ไฟล์
กำลังประมวลผลรายการไฟล์ ...
กำลังรวบรวมแพทช์ ...
ต้องแก้ไขไฟล์ 266 ไฟล์
ต้องสร้างไฟล์ 216 ไฟล์และ 8 ไดเร็กทอรี
ต้องลบ 7 ไฟล์
สมัครแพตช์ จะไม่ให้ข้อมูลตอบกลับโดยค่าเริ่มต้น
แต่งหน้า ข้อโต้แย้ง
ทำแพทช์ ต้องการสองอาร์กิวเมนต์: old_src และ new_src.
เก่า-src
นี่คือชื่อของไฟล์เดียวหรือไดเร็กทอรีที่มีสำเนาของ
ไฟล์เป้าหมายเวอร์ชันเก่า กล่าวอีกนัยหนึ่งสำเนาของไฟล์ ก่อน เพื่อใด ๆ
การปรับเปลี่ยน
หรืออาจเป็นชื่อของไฟล์เก็บถาวรที่เก็บไฟล์ที่จะประมวลผล
รูปแบบไฟล์เก็บถาวรที่อนุญาตคือ gzipped tar (ชื่อลงท้ายด้วย "".tar.gz"" หรือ "".tgz"")
bzipped tar (ชื่อลงท้ายด้วย "".tar.bz2""), tar ธรรมดา (ชื่อลงท้ายด้วย "".tar"" และ zip
(ชื่อลงท้ายด้วย "".zip")
ใหม่-src
นี่คือชื่อของไฟล์เดียวหรือไดเร็กทอรีที่มีสำเนาของ
เวอร์ชันที่ใหม่กว่าของไฟล์เป้าหมาย กล่าวอีกนัยหนึ่งสำเนาของไฟล์ หลังจาก
มีการปรับเปลี่ยน
หรืออาจเป็นชื่อของไฟล์เก็บถาวรที่เก็บไฟล์ที่จะประมวลผล
สคริปต์ตัวแก้ไขที่สร้างโดย ทำแพทช์ จะดูแลการสร้างไฟล์ใหม่และ
ไดเร็กทอรี อัพเดตไฟล์ที่มีอยู่ และลบไฟล์และไดเร็กทอรีที่ไม่มีอีกต่อไป
ปัจจุบันใน ใหม่-src ไดเรกทอรี
MANIFEST ไฟล์
วัตถุประสงค์ของไฟล์ Manifest คือการจัดเตรียมรายการไฟล์ที่ประกอบเป็นแพ็คเกจ
ไฟล์มานิเฟสต์มักจะเรียกว่า ""MANIFEST" และอยู่ในไดเร็กทอรีระดับบนสุด
ของแพ็คเกจ
แม้ว่าจะไม่มีมาตรฐานอย่างเป็นทางการสำหรับเนื้อหาของไฟล์รายการ ทำแพทช์ ใช้
กฎต่อไปนี้:
· หากบรรทัดที่สองจากไฟล์ manifest ดูเหมือนบรรทัดคั่น (เช่น is
ว่างเปล่าหรือมีเพียงขีดกลาง) จะถูกละทิ้งและเป็นบรรทัดแรก
· บรรทัดว่างและบรรทัดที่ขึ้นต้นด้วย "#" จะถูกละเว้น
· หากมี "คำ" ที่คั่นด้วยช่องว่างหลายบรรทัดในบรรทัด ให้ถือว่าคำแรก
เพื่อเป็นชื่อไฟล์
ค่าเริ่มต้น การรักษา
โดยค่าเริ่มต้น ทำแพทช์ ค้นหาไฟล์ชื่อ ""MANIFEST"" ในไดเร็กทอรีระดับบนสุดของ
ต้นไม้ต้นทางเก่าและต้นใหม่ หากพบไฟล์เหล่านี้ (หรือไฟล์ใดไฟล์หนึ่ง) ไฟล์เหล่านี้คือ
ใช้แล้ว. หากไม่พบไฟล์รายการ จะถือว่าแพ็คเกจประกอบด้วยไฟล์ทั้งหมด
ในไดเร็กทอรี
ชื่อเริ่มต้นของไฟล์รายการเริ่มต้นสามารถแก้ไขได้ด้วยตัวเลือกบรรทัดคำสั่ง
""-automanifest"" ดูส่วน "ตัวเลือกบรรทัดคำสั่ง"
อย่างชัดเจน การตั้งชื่อ of ประจักษ์ ไฟล์
สามารถใช้ตัวเลือกบรรทัดคำสั่ง ""-oldmanifest"" และ ""-newmanifest"" ได้อย่างชัดเจน
กำหนดไฟล์รายการเก่าและใหม่ ตัวเลือก ""-manifest"" เป็นวิธีสั้น ๆ ในการตั้งค่าหนึ่ง
ไฟล์รายการสำหรับต้นไม้ต้นทางทั้งเก่าและใหม่
ปราบปราม ประจักษ์ ไฟล์ การประมวลผล
สามารถใช้ตัวเลือกบรรทัดคำสั่ง ""-nomanifest"" เพื่อระงับการประมวลผลไฟล์รายการทั้งหมด
แพ็กเกจจะถือว่าประกอบด้วยไฟล์ทั้งหมดในไดเร็กทอรีต้นทาง
แต่งหน้า ตัวเลือก
ทำแพทช์ มีหลายทางเลือกในการควบคุมพฤติกรรม ตัวเลือกมักจะระบุไว้ใน
บรรทัดคำสั่ง แต่ ทำแพทช์ สามารถเลือกได้จาก XNUMX แหล่ง ดังนี้
ใบสั่ง:
· ตัวแปรสภาพแวดล้อม เมคพัชชินิต.
เมื่อตั้งค่าตัวแปรสภาพแวดล้อมนี้ เนื้อหาจะถือว่าเป็นบรรทัดคำสั่ง
ตัวเลือกที่ประมวลผลเมื่อเริ่มต้น อนุญาตให้ใช้ตัวเลือกปกติทั้งหมด บวกหนึ่งรายการ:
-rcfile ชื่อไฟล์. ตัวเลือก -rcfile สามารถใช้ระบุไฟล์ตัวเลือกอื่นได้ โปรดดูที่
ด้านล่าง
· ไฟล์ตัวเลือก
ทำแพทช์ ขั้นแรกให้พยายามประมวลผลไฟล์ชื่อ /etc/makepatchrc. (นี่คือ Unix-ism)
ไม่เป็นไรถ้าไฟล์นี้หายไป
ถัดไป ทำแพทช์ จะประมวลผลไฟล์ชื่อ .makepatchrc ในโฮมไดเร็กทอรีของผู้ใช้
ถ้ามันมีอยู่
หลังจากประมวลผลไฟล์นี้แล้ว ทำแพทช์ จะประมวลผลไฟล์ชื่อ .makepatchrc ที่
ไดเร็กทอรีปัจจุบัน หากมี สามารถระบุชื่ออื่นสำหรับไฟล์นี้ได้
พร้อมออฟชั่น -rcfile ในตัวแปรสภาพแวดล้อม เมคพัชชินิต. นี่เป็นวิธีเดียวที่จะ
ระบุชื่อไฟล์ตัวเลือกอื่น
ในไฟล์ตัวเลือกทั้งหมด บรรทัดว่างและบรรทัดที่ขึ้นต้นด้วย ";" หรือ "#" จะถูกละเว้น ทั้งหมด
บรรทัดอื่นถือว่ามีตัวเลือกเหมือนกับว่าได้ระบุไว้ใน
บรรทัดคำสั่ง
·บรรทัดคำสั่ง
คำสั่ง เส้น ตัวเลือก
ตัวเลือกไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และอาจย่อมาจากเอกลักษณ์
-คำอธิบาย ข้อความ
ระบุข้อความอธิบายสำหรับโปรแกรมปรับปรุงนี้ หลายรายการ -คำอธิบาย ตัวเลือกอาจจะ
ที่จัดมา
หากไม่มีคำอธิบาย โปรแกรมจะพยายามเดาอย่างใดอย่างหนึ่ง มักจะเป็นไปได้
ถ้าทั้งสองไดเร็กทอรีเป็นชื่อธรรมดา เช่น '"pkg-1.16"' หากไม่สามารถบรรยายได้
กำหนดโปรแกรมจะขออย่างใดอย่างหนึ่ง
-ความแตกต่าง cmd
หากระบุไว้ cmd เป็นคำสั่งที่ใช้สร้างความแตกต่างระหว่าง
ไฟล์สองเวอร์ชัน หากไม่ได้ระบุไว้ คำสั่งนี้มีค่าเริ่มต้นเป็น ""diff -c""
เพื่อผลลัพธ์ที่ดีที่สุด ให้ใช้เฉพาะ ""diff -c"" หรือ ""diff -u"" ไม่ว่าในกรณีใดมัน ต้อง ก่อ
บริบทหรือเอาต์พุตส่วนต่างแบบรวม
-patch ระดับ ไฟล์
หากระบุไว้ ไฟล์ ระบุไฟล์สำรองที่จะใช้แทน
"patchlevel.h".
-แสดงอัตโนมัติ mfile.mfile
ทำแพทช์ จะใช้ไฟล์รายการของชื่อที่กำหนดโดยอัตโนมัติหากปรากฏใน
ไดเรกทอรี ชื่อเริ่มต้นคือ "MANIFEST".
-nomanfest
ระงับการใช้ไฟล์รายการ
-ประจักษ์ mfile.mfile
หากระบุไว้ mfile.mfile ระบุชื่อไฟล์รายการซึ่งประกอบด้วยรายการ
ของไฟล์ที่มีอยู่ในทั้ง เก่า และ ใหม่ ไดเรกทอรี
-oldmanifest ออมไฟล์
หากระบุไว้ ออมไฟล์ ระบุชื่อไฟล์รายการซึ่งประกอบด้วยรายการ
ของไฟล์ที่มีอยู่ใน เก่า ไดเร็กทอรี ตัวเลือกนี้ออกแบบมาเพื่อใช้ใน
ร่วมกับ - รายการใหม่ ตัวเลือก. โปรดทราบว่า เก่า และ ใหม่ ไดเรกทอรีต้อง
ยังคงถูกระบุ
- รายการใหม่ นาโนไฟล์
หากระบุไว้ นาโนไฟล์ ระบุชื่อไฟล์รายการซึ่งประกอบด้วยรายการ
ของไฟล์ที่มีอยู่ใน ใหม่ ไดเร็กทอรี ตัวเลือกนี้ออกแบบมาเพื่อใช้ใน
ร่วมกับ -oldmanifest ตัวเลือก. โปรดทราบว่า เก่า และ ใหม่ ไดเรกทอรีต้อง
ยังคงถูกระบุ
-[ไม่]ฟื้น
ทำแพทช์ เรียกซ้ำผ่านไดเร็กทอรีโดยค่าเริ่มต้น ตัวเลือก -ไม่มีคำสาป ป้องกัน
การเรียกซ้ำนอกเหนือจากไดเร็กทอรีเริ่มต้น
-[ไม่]ติดตาม
หากตั้งค่าไว้ ลิงก์สัญลักษณ์ไปยังไดเร็กทอรีจะถูกสำรวจราวกับว่าเป็นไดเร็กทอรีจริง
-ข้อมูล cmd คำสั่ง
หากระบุไว้ ผลลัพธ์ของการรัน คำสั่ง จะถูกเพิ่มก่อนแต่ละส่วนของแพทช์
คำสั่ง จะได้รับการแทนที่ต่อไปนี้ก่อน: %oP จะถูกแทนที่ด้วย
ชื่อของไฟล์เก่า %nP จะถูกแทนที่ด้วยชื่อของไฟล์ใหม่ "%%" จะ
แทนที่ด้วย "%" เดียว; อาจมีการเพิ่มลำดับ "%" อื่น ๆ ในเวอร์ชันต่อ ๆ ไป เมื่อ
กำลังสร้างไฟล์ใหม่ ชื่อของไฟล์ใหม่จะถูกระบุสำหรับทั้ง %oP และ
%nP
โปรดทราบว่า %oP และ %nP ถูกสร้างแบบจำลองหลังจากลำดับ "%" ของ พบ -printf.
-ไม่รวม Belt hold
หากระบุไว้ ไฟล์ที่ตรงกับรูปแบบเชลล์ Belt hold จะถูกยกเว้น เท่านั้น
อักขระตัวแทน "*" และ "?" และคลาสอักขระ "[...]" ได้รับการจัดการ หลายรายการ
-ไม่รวม อาจมีการจัดหาตัวเลือก
-ไม่รวม-regex Belt hold
หากระบุไว้ ไฟล์และไดเร็กทอรีที่ตรงกับรูปแบบนิพจน์ทั่วไปของ Perl
Belt hold จะถูกยกเว้น หลายรายการ -ไม่รวม-regex อาจมีการจัดหาตัวเลือก
-[ไม่]ไม่รวมมาตรฐาน
ตั้งเป็นค่าเริ่มต้น หากตั้งค่าไว้ ชุดไฟล์และไดเร็กทอรีทั่วไปจะถูกละเว้น
ดูเพิ่มเติมที่ส่วน "รูปแบบการยกเว้นมาตรฐาน"
-[ไม่]ยกเว้น-cvs
หากตั้งค่าไว้ ไฟล์และไดเร็กทอรีที่มักจะเป็นส่วนหนึ่งของระบบควบคุมเวอร์ชัน CVS คือ
ได้รับการยกเว้น
นอกจากนี้ ไฟล์ ".cvsignore" ยังได้รับเกียรติเช่นเดียวกับที่ CVS ทำ
ดูเพิ่มเติมที่ส่วน "รูปแบบการยกเว้นมาตรฐาน"
-[ไม่]ยกเว้น-rcs
หากตั้งค่าไว้ ไฟล์และไดเร็กทอรีที่มักจะเป็นส่วนหนึ่งของระบบควบคุมเวอร์ชัน RCS จะเป็น
ได้รับการยกเว้น
ดูเพิ่มเติมที่ส่วน "รูปแบบการยกเว้นมาตรฐาน"
-[ไม่]ไม่รวม-sccs
หากตั้งค่าไว้ ไฟล์และไดเร็กทอรีที่มักจะเป็นส่วนหนึ่งของระบบควบคุมเวอร์ชัน SCCS จะเป็น
ได้รับการยกเว้น
ดูเพิ่มเติมที่ส่วน "รูปแบบการยกเว้นมาตรฐาน"
-[ไม่]ไม่รวม-vc
ย่อมาจาก (อีกครั้ง) การตั้งค่า -ไม่รวม-rcs, -ไม่รวม-CVSและ -ไม่รวม-sccs.
-[ไม่]ละเว้น cvs-คำหลัก
ความแตกต่างในข้อมูลคีย์เวิร์ด CVS (เช่น "Id", "Header", "Revision") จะถูกละเว้น
หากไม่มีความแตกต่างอื่น ๆ ในกลุ่มก้อนเดียวกัน ตัวเลือกนี้ผ่านมาก
regex ขนดกเพื่อ --ignore-จับคู่บรรทัด ตัวเลือกของ diff โปรแกรมและด้วยเหตุนี้
ต้องการ GNU diff. ข้อจำกัดนี้อาจถูกยกเลิกในเวอร์ชันต่อๆ ไป
-[ไม่]ละเว้น rcs-keywords
เหมือนกับ -[ไม่]ละเว้น cvs-คำหลัก.
-สารสกัด Belt hold =คำสั่ง
กำหนดกฎการแยกเพิ่มเติมสำหรับไฟล์เก็บถาวร ถ้าชื่อต้นทางหรือ
ปลายทางตรงกับPerl Belt hold ที่ คำสั่ง ถูกดำเนินการด้วยไฟล์เก็บถาวรบน
อินพุตมาตรฐานและไดเร็กทอรีปัจจุบันตั้งค่าเป็นตำแหน่งที่ไฟล์จะต้อง
สกัด หลายรายการ -สารสกัด อาจมีการจัดหาตัวเลือก ผู้ใช้กำหนดกฎแทนที่
กฎในตัว
กฎในตัวคือ:
.+\.(tar\.gz|tgz) => "gzip -d | tar xpf -"
.+\.(tar\.bz2) => "bzip2 -d | tar xpf -"
.+\.tar => "tar xf -"
.+\.zip => "คลายซิป -"
รูปแบบจะยึดโดยปริยายที่จุดเริ่มต้นและจุดสิ้นสุดของชื่อไฟล์
-[ไม่]ident
หากตั้งค่าไว้ ชื่อโปรแกรมและเวอร์ชันจะถูกรายงาน
-[ไม่]ละเอียด
สิ่งนี้ถูกกำหนดโดยค่าเริ่มต้น ทำให้ ทำแพทช์ แสดงข้อมูลเกี่ยวกับกิจกรรม
ไปยัง สตเดอร์.
-[ไม่]เงียบสงบ
ตรงกันข้ามกับ -รายละเอียด. หากตั้งค่าไว้ จะแสดงว่า ทำแพทช์ เพื่อระงับการแสดงผลของ
ข้อมูลกิจกรรม
-[ไม่]ช่วย
หากตั้งค่าไว้ จะทำให้ข้อความช่วยเหลือสั้นปรากฏขึ้น หลังจากนั้นโปรแกรม
ออกทันที
Standard ไม่รวม รูปแบบ
รูปแบบไฟล์ต่อไปนี้จะถูกยกเว้นเสมอ:
*~ *.a *.bak *.BAK *.elc *.exe *.gz *.ln *.o *.obj
*.olb *.old *.orig *.rej *.so *.Z
.del-* .make.state .nse_depinfo หลัก
แท็ก TAGS
ตัวเลือกเสริม (Option) -ไม่รวม-sccs เพิ่ม:
p.* s.* วทท
ตัวเลือกเสริม (Option) -ไม่รวม-rcs เพิ่ม:
,* *,v RCS RCSLOG
ตัวเลือกเสริม (Option) -ไม่รวม-CVS เพิ่มรูปแบบ ".cvsignore" และ:
.#* #* _$* *$ CVS CVS.adm CVSlog.*
โปรดแจ้งให้เราทราบหากฉันพลาดบางอย่าง
สภาพสิ่งแวดล้อม ตัวแปร
เมคพัชชินิต
เมื่อตั้งค่าตัวแปรสภาพแวดล้อมนี้ เนื้อหาจะถือว่าเป็นบรรทัดคำสั่ง
ตัวเลือกที่ประมวลผลเมื่อเริ่มต้น อนุญาตให้ใช้ตัวเลือกปกติทั้งหมด บวกหนึ่งรายการ:
-rcfile ชื่อไฟล์. ถ้า -rcfile ถูกระบุ ไฟล์ถูกอ่านและทุกบรรทัดเป็น
ถือว่ามีการตั้งค่าตัวเลือกตามที่อธิบายไว้ในส่วน "ตัวเลือก Makepatch"
ทีเอ็มพีดีอาร์
"TMPDIR" สามารถใช้เพื่อกำหนดพื้นที่ที่จะวางไฟล์ชั่วคราว มัน
ค่าเริ่มต้นเป็น "/ Tmp".
TEMP
"TEMP" สามารถใช้แทน "TMPDIR" ได้
ตัวอย่าง
สมมติว่าคุณมีแผนผังไดเร็กทอรี `"pkg-1.6" 'ที่มีแหล่งที่มาสำหรับแพ็คเกจ `"pkg"'
เวอร์ชัน 1.6 และแผนผังไดเร็กทอรี `"pkg-1.7"' ที่มีแหล่งที่มาสำหรับเวอร์ชัน 1.7 NS
คำสั่งต่อไปนี้จะสร้างชุดโปรแกรมแก้ไขที่อัปเดตแหล่งที่มา 1.6 เป็น1.7
รุ่น:
makepatch pkg-1.6 pkg-1.7 > pkg-1.6-1.7.patch
ในการใช้สคริปต์นี้ ไปที่ไดเร็กทอรี pkg-1.6 และป้อนสคริปต์ไปที่ สมัครแพตช์:
cd เก่า/pkg-1.6
Applypatch pkg-1.6-1.7.patch
สมัครแพตช์ จะตรวจสอบว่าดำเนินการถูกที่และดำเนินการที่จำเป็นทั้งหมด
การปรับปรุง
นี่เป็นวิธีหนึ่งในการสร้างและใช้ไฟล์รายการ:
(cd pkg-1.6; find . -type f -print > OLDMANIFEST)
(cd pkg-1.7; find . -type f -print > NEWMANIFEST)
เมคแพตช์ \
-oldmanifest pkg-1.6/OLDMANIFEST \
-รายการใหม่ pkg-1.7/รายการใหม่ \
pkg-1.6 pkg-1.7 > pkg-1.6-1.7.diff
Bugs และ ข้อ จำกัด
งานส่วนใหญ่ของ ทำแพทช์ กำลังประมวลผลชื่อไฟล์ ทำแพทช์ ได้รับการทดสอบแล้ว
อย่างกว้างขวางบนระบบ Unix แต่ไม่รับประกันว่าจะทำงานบนระบบอื่นได้
สมัครแพตช์ มีการรายงานซ้ำๆ เพื่อดำเนินการอย่างถูกต้อง ทำแพทช์ สร้างชุดแพทช์บน
ระบบ Windows 32 บิตที่ทันสมัยเช่นกัน
ทำแพทช์ ไม่ทราบเกี่ยวกับลิงก์สัญลักษณ์ สิ่งเหล่านี้จะได้รับการปฏิบัติเหมือนไฟล์ธรรมดา
สามารถสร้างผลลัพธ์ที่ไม่ถูกต้องได้หากไฟล์ที่ใช้หรือสร้างขึ้นใช้ต่างกัน
ตัวแยกเส้นทาง
ใช้ makepatchp ออนไลน์โดยใช้บริการ onworks.net