ฉันกำลังหาวิธีการทำงานที่ดีที่สุดใน repo ของตัวเองสำหรับโค้ดที่กำหนดเองในขณะที่รวมเข้ากับไลบรารีของผู้ขาย (ในกรณีนี้คือ Magento) ในกรณีของฉัน ฉันไม่จำเป็นต้องส่งแพตช์ไปยังผู้ขาย (แม้ว่านั่นจะเป็นประโยชน์อย่างมากก็ตาม)
ฉันได้ดู git submodule และ git subtree แล้ว ฉันไม่คิดว่า git submodule จะใช้ได้กับสิ่งที่ฉันต้องการ Magento มีโครงสร้างต้นไม้ประเภทต่อไปนี้:
/app
/code
/community *
/core
/local *
/design
/adminhtml
/frontend
/base
/yourtheme *
/lib
/Zend
/Varien
/yourlib *
/js
/yourjs *
/varien
/mage
การใช้ git submodule ดูเหมือนจะทำงานได้ดีที่สุดในโฟลเดอร์ที่แยกจากกัน (เช่น / เป็นแอปของคุณและ /vendor/magento เป็นโมดูลย่อย) อย่างไรก็ตาม ด้วยระดับของการเชื่อมโยงกัน โมดูลย่อยจึงดูเหมือนจะไม่ใช่วิธีแก้ปัญหาที่ดี ฉันผิดเรื่องนี้เหรอ?
นั่นทำให้ฉันมีทรีย่อยคอมไพล์ แต่สำหรับทรีย่อย git สมมติฐานหลักเดียวกัน (ที่สาขาผู้ขายเป็นทรีย่อยตามชื่อ) ไม่ถือเป็นจริง Magento ไม่ใช่แผนผังย่อย แต่เป็นไลบรารีหลักที่โปรเจ็กต์ของฉันพอดี ถูกต้องไหม?
หากวิธีการคอมไพล์ทั้งสองวิธีนี้ไม่ได้ผล มีวิธีอื่นที่ฉันควรรู้เกี่ยวกับสิ่งนั้นเพื่อทำสิ่งที่ฉันพยายามทำให้สำเร็จหรือไม่
ตัวเลือกสุดท้ายที่ฉันลังเลที่จะติดตามคือการมี repo ที่ฉันใช้กับการเปลี่ยนแปลงผู้ขายล่าสุด (ดึงมาจาก tarball) ฉันไม่เต็มใจที่จะติดตามสิ่งนี้เนื่องจากฉันรู้สึกว่ามีข้อมูลบันทึกของผู้ขาย (ดึงมาจาก https://github.com/magentomirror/magento-mirror) จะมีประโยชน์อย่างมากในการจัดเรียงการอัปเดตใหม่ๆ และค้นหาว่าการเปลี่ยนแปลงใดบ้างที่ส่งผลต่อฉัน