วิธีที่ง่ายที่สุดในการสร้าง Patch เพื่อส่งไปยัง WordPress Core?


13

ฉันได้ส่งแพตช์ไม่กี่ตัวสำหรับคอร์ WordPressบนTrac (หนึ่งในนั้นถูกใช้) แต่ทุกครั้งที่ฉันคิดว่าฉันทำฉันประจบประแจงเพราะการตั้งค่าของฉันสำหรับการทำเช่นนั้นน่าเบื่ออย่างไม่น่าเชื่อ

ใครช่วยกรุณาเล่ารายละเอียดขั้นตอนที่จำเป็นในการส่ง patch สำหรับคอร์และจากนั้นวิธีที่ดีที่สุดในการปรับปรุงกระบวนการให้ดีขึ้นจึงไม่น่าเบื่อ ฉันทำงาน Mac OS X และ PhpStorm ในขณะนี้ แต่ฉันคิดว่า shell script อาจจะง่ายที่สุด? หรืออาจเป็นสคริปต์ PHP ที่ทำงานได้ทั้งหมด?

หนึ่งในปัญหาคือฉันไม่เข้าใจสิ่งที่ฉันต้องเริ่มต้นด้วย ฉันจะเริ่มต้นด้วยลำตัวหรือไม่? ฉันต้องดาวน์โหลดสำเนาใหม่และเพิ่ม / แก้ไขสำเนาด้วยรหัสของฉันทุกครั้งที่ต้องการสร้างแพตช์หรือไม่?

อีกครั้งในขณะที่ฉันทำงานกับ SVN แล้วและการปะอยู่นอกชุดทักษะปัจจุบันของฉันและฉันต้องการเปลี่ยนสิ่งนั้น หวังว่าคุณจะได้ผู้เชี่ยวชาญ WordPress มาช่วยเหลือฉัน ขอบคุณล่วงหน้า.

UPDATE:

หลังจากคำตอบของ @ hakre ฉันคิดว่าฉันควรจะเพิ่มคำถาม:

  • ฉันสามารถสร้างแพตช์จากเวอร์ชั่นเก่ากว่าหรือต้องใช้ลำตัวได้หรือไม่?
  • หากฉันกำลังทำงานในโครงการโดยใช้เวอร์ชันที่เผยแพร่ (3.0.1) ฉันสามารถแก้ไขและสร้างแพตช์สำหรับคอร์หรือฉันต้องดาวน์โหลดและตั้งค่าสำเนาลำตัวที่เก่าและใหม่และทำการแก้ไขใหม่ที่นั่นหรือไม่?
  • ฉันจะทำอย่างไรกับเชลล์สคริปต์เพื่อให้ฉันสามารถเข้ารหัสการเข้าสู่สคริปต์และเพียงแค่เรียกใช้สคริปต์เพื่อสร้างทุกสิ่งที่ฉันต้องการและ / หรือเพื่อสร้างแพตช์?
  • และสิ่งที่ผิดพลาดคืออะไร?

คำถามเหล่านี้ดูเหมือนจะถูกสันนิษฐานโดยผู้ที่รู้ว่า SVN ของ WordPress ทำงานอย่างไรและเช่นนั้นจะถูกคัดสรรในการสนทนาทุกครั้ง

คำตอบ:


8

วิธีที่ง่ายที่สุดในการสร้างแพทช์ได้อธิบายไว้ที่นี่:

http://wordpress.org/download/svn/

ฉันสามารถสร้างแพตช์จากเวอร์ชั่นเก่ากว่าหรือต้องใช้ลำตัวได้หรือไม่?

คุณควรสร้างแพตช์กับเวอร์ชั่นเดียวกันกับที่คุณต้องการ

อย่าคาดหวังว่าแพตช์ที่สร้างขึ้นจาก WP 3.0.1 จะใช้กับ WP 3.1-alpha ได้อย่างสมบูรณ์

หากฉันกำลังทำงานในโครงการโดยใช้เวอร์ชันที่เผยแพร่ (3.0.1) ฉันสามารถแก้ไขและสร้างแพตช์สำหรับคอร์หรือฉันต้องดาวน์โหลดและตั้งค่าสำเนาลำตัวที่เก่าและใหม่และทำการแก้ไขใหม่ที่นั่นหรือไม่?

คุณไม่จำเป็นต้องตั้งค่าการติดตั้งใหม่สำหรับแพทช์ใหม่แต่ละอัน คุณสามารถใช้svn ย้อนกลับเพื่อกลับไปที่สำเนาที่เก่าแก่

นอกจากนี้ฐานข้อมูลไม่จำเป็นต้องทำความสะอาดทุกครั้ง ที่จริงแล้วมันจะดีกว่าถ้าคุณมีการดัดแปลงบางอย่างเพื่อจำลองสภาพแวดล้อมจริง


1
Gee มันเป็นเลือดที่ง่ายต่อการสร้างแพทช์หลังจากที่เรามีสำเนาการทำงานของเรา: svn diff > my-patch.patchฉัน gusta!
brasofilo

5

Eclipse PDT + Subclipse + X

ฉันใช้คราสที่ได้บูรณาการ SVN ฉันคิดว่า PHP Strom ก็ทำได้เช่นกัน ฉันเข้าสู่หนึ่งในโครงการลำตัวของฉันซึ่งโดยทั่วไปจะเป็นเช็คเอาต์จากที่เก็บ svn ของ WordPress

จากนั้นฉันจะแก้ไขไฟล์ที่ฉันต้องการแก้ไข Eclipse แสดงให้เห็นว่ามีการแก้ไขฉันคลิกขวาที่ไดเรกทอรีเลือกTeam->Create Patchและฉันได้รับไฟล์ที่เปลี่ยนแปลงทั้งหมดที่ฉันสามารถเลือกได้สำหรับ diff จากนั้นฉันสามารถเลือกระหว่างการคัดลอกไปยังคลิปบอร์ดหรือบันทึกลงดิสก์ ฉันบันทึกแพทช์ทั้งหมดที่ฉันสร้างด้วยหมายเลขตั๋วลงในไดเรกทอรีที่ฉันมีในฮาร์ดดิสก์ของฉัน

จากนั้นฉันไปที่เบราว์เซอร์และอัปโหลดแพทช์

ฉันสามารถทำได้ด้วยการรวมMyLyn Tracที่สะดวกสบายมากขึ้น แต่คุณต้องการ XML-RPC ใน trac ดังนั้นคุณต้องมีผู้ดูแลระบบ trac เพื่อติดต่อ มันใช้งานได้ค่อนข้างดี แต่ฉันไม่ได้กำหนดค่าไว้ในทุกโปรเจ็กต์และใช้มันเป็นส่วนใหญ่เมื่อฉันทำตั๋ว rundowns

ดังนั้นชำระเงินจริง ๆ Eclipse ถ้าคุณชอบ มันใหญ่และช้าดังนั้นคุณต้องมีคอมพิวเตอร์ขนาดใหญ่ สำหรับคนตัวเล็กฉันได้รับประสบการณ์ที่ดีกับ Fedora Linux Eclipse ทำงานได้ดีบนมัน ฉันรู้ว่าคุณเป็นแฟน PHP Storm แต่ดีฉันชอบ Eclipse ของฉันและมาพร้อมกับส่วนขยายจำนวนมากที่สั่นคลอน แม้แต่ PHP :) แต่โดยทั่วไป PHP Storm ควรทำการเช็คเอาต์ / แก้ไขข้อมูลโดยอัตโนมัติ

WordPress Eclipse 1x1

  • แยกออกจาก PHP Buildpath: wp-admin / load-scripts.php; wp-admin / load-styles.php
  • การโค่นล้ม (Trunk) คือ: http://svn.automattic.com/wordpress/trunkและอื่น ๆ ตาม
  • งานพื้นที่เก็บข้อมูล: ใช้การเชื่อมต่อกับ Trac https://core.trac.wordpress.org

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

ตัวอย่างการรวม: PHP Code Sniffer, Eclipse และ WordPress


ขอบคุณสำหรับคำตอบ. ฉันลอง Eclipse และเกลียดมัน ไม่ตอบสนองมากเกินไปและฉันไม่ชอบอินเทอร์เฟซ ดังนั้นจึงเป็นคำตอบที่ดีสำหรับผู้อื่นที่ Eclipse เป็นตัวเลือก แต่คำตอบของคุณไม่ตรงกับความต้องการของฉัน ฉันจะให้มันและลงคะแนน แต่ฉันชอบวิธีการแก้ปัญหาที่ไม่ได้เชื่อมโยงกับ IDE และเป็นวิธีที่อธิบายกระบวนการได้ดีกว่า
MikeSchinkel

นอกจากนี้ฉันตั้งใจจะบอกว่า PhpStorm มีการรวม SVN (และ Git) เต็มรูปแบบ แต่การรวมกันนั้นต้องการให้ผู้ใช้เข้าใจอย่างถ่องแท้ว่าเอฟเฟกต์แต่ละเมนูจะมีอะไรบ้างเพราะมันมีคำแนะนำน้อยมาก ในไฟล์ช่วยเหลือ แต่เนื่องจากพวกมันไม่ไวต่อบริบทและเนื่องจาก SVN + Git เป็นส่วนเสริมของ PhpStorm มันง่ายที่จะหลงทางทั้งหมด) นั่นคือเหตุผลที่ฉันต้องการทำความเข้าใจที่หลักและไม่ต้องเปลี่ยนเป็น IDE ฉันไม่ชอบที่จะทำ
MikeSchinkel

@MikeSchinkel - หาก SVN ซับซ้อนเกินไปสำหรับคุณ (ไม่ว่า SVN + Editor จะมีรสชาติแบบใด) คุณไม่สามารถสร้างแพทช์สำหรับโครงการเวิร์ดเพรสได้ โดยทั่วไปถ้าคุณไม่ชอบส่วนต่อประสาน UI กับ SVN ของคุณเรียนรู้ commandline แต่คุณต้องเรียนรู้ต่อไป คุณสามารถใช้ SVN กับโปรแกรมแก้ไขใด ๆ ที่คุณชอบ btw .. ฉันมีหนึ่งไฟล์ SVN ที่เป็นลิขสิทธิ์ copyrunning และกำหนดค่าบนเว็บเซิร์ฟเวอร์เพื่อสร้างแพทช์และทดสอบพวกเขา หลังจากที่ฉันทำการแก้ไขหนึ่งครั้งฉันจะลบการเปลี่ยนแปลงในเครื่อง (เปลี่ยนกลับ) จากสำเนาในเครื่องของฉันจากนั้นสามารถไปหาโปรแกรมแก้ไขอื่น ๆ ได้ มันใช้งานได้เสมอ จะพูดอะไรอีก
hakre

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