วิธีรวมไฟล์ใหม่เข้าไปในแพทช์


9

ฉันพยายามที่จะทำให้แพทช์เป็นแนะนำที่นี่
ว่าฉันมีสองไดเรกทอรี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

คุณควรจะทำได้โดยใช้--new-fileสวิตช์ นำมาจากหน้าคนต่าง :

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

ลองสิ่งนี้:

diff -crB --new-file pp0 pp1 > pp0.patch

ฉันไม่ทราบว่าฉันได้ทำการแก้ไขอย่างถูกต้องแล้ว แต่ไม่รวมไฟล์ใหม่
manuzhang

คำขอโทษของฉันทำงานได้
manuzhang

3

คำตอบทันที: diff -Nเป็นอธิบายโดย pootzko diff -urNคุณจะพบว่าจำนวนมากของแพทช์ออกมีถูกสร้างขึ้นโดย

สิ่งที่ทำให้ชีวิตของคุณดีขึ้น: เริ่มใช้เครื่องมือควบคุมเวอร์ชัน หากคุณไม่ทราบใด ๆ เริ่มต้นด้วยการเป็นหนึ่งในสามหลักควบคุมการแก้ไขการกระจายระบบบาซาร์ , GitหรือMercurial ตรวจสอบรุ่นที่สะอาดทำงานตรวจสอบงานของคุณหลาย ๆ ครั้งตามที่คุณต้องการและขอให้ระบบควบคุมเวอร์ชันของคุณมีส่วนต่างระหว่างรุ่นที่สะอาดและที่ทำงานของคุณ


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