ฉันควรควบคุมโมดูลที่ถูกควบคุม contribed ในโครงการของฉัน


7

ฉันได้รับแจ้งว่าในขณะที่ฉันกำลังพัฒนาฉันควรควบคุมทุกอย่างภายใต้ที่sites/เก็บรหัสของฉัน (เช่น SVN)

สมมติว่าผมจะไม่เคยได้สัมผัสใด ๆ ของโมดูล contrib ที่ผมใช้ ( ctools, viewsฯลฯ ) แต่จะสร้างรูปแบบของตัวเองควรฉันยังคงทำเช่นนั้น?

หรือฉันควรที่จะควบคุมทุกอย่างภายใต้แหล่งที่มาsites/all/themes/?

ขอบคุณ

คำตอบ:


10

ในทีมของฉันเราได้ย้ายไปหาแหล่งเฉพาะโครงการปัจจุบันของเราเท่านั้น หากเรากำลังใช้ Views เช่นเราเพิ่มรายการที่เหมาะสมลงในdrush make -file และรุ่นนั้นแต่ไม่ใช่โมดูล

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

นอกจากว่าคุณไม่สามารถใช้การทำ drush และ drush ได้อย่างสมบูรณ์ฉันไม่เห็นสาเหตุที่ควรมีรหัสควบคุมเวอร์ชันที่มีเวอร์ชันอื่นที่ดี และถ้าคุณตั้งใจที่จะแฮ็คหนึ่งในโมดูลคุณควรเพิ่มมันเป็นsubmoduleอีกครั้งอย่ากำหนดรหัสใน repo ของคุณ (ฉันเชื่อว่าสิ่งนี้เรียกว่าสาขาผู้ขายใน SVN)

แก้ไข:สำหรับรายละเอียดเพิ่มเติมและการตั้งค่าขั้นสูงเพิ่มเติมคุณสามารถดูที่เก็บนี้: git@github.com: letharion / Drupal-build-scripts.git สคริปต์ถูกเขียนใน bash เพื่อสนับสนุนเวิร์กโฟลว์ทีมของฉันซึ่งรวมถึงสิ่งปลูกสร้าง โปรไฟล์การติดตั้งฐาน ( NodeStream ) จากนั้นโปรไฟล์เฉพาะไซต์ของเราด้านบนทำไฟล์สำหรับแต่ละโปรไฟล์, hooks สำหรับการใช้แพทช์หรือทำการเปลี่ยนแปลงอื่น ๆ ในแต่ละขั้นตอนการสร้าง ฯลฯ ฉันหวังว่าฉันจะหาเวลาอีกครั้ง - เขียนมันเป็นส่วนขยายที่ยิ่งใหญ่ในอนาคตอันใกล้


ขอบคุณสำหรับคำอธิบายโดยละเอียดของคุณ ใช่ฉันใช้ drush และวางแผนให้อัตโนมัติให้มากที่สุด และฉันไม่ได้วางแผนที่จะเปลี่ยนรหัสใด ๆ ในแกนหลักหรือโมดูล contrib
cherouvim

+1 เวอร์ชันไฟล์ให้เป็นความคิดที่ดีคิดว่าฉันจะทำว่าในอนาคต;)
ไคลฟ์

1
@ Letharion ฉันไม่เข้าใจว่ามันทำงานอย่างไรเมื่อพัฒนาเว็บไซต์เดียวกันกับนักพัฒนาหลายคนในเวลาเดียวกัน? AFAIK drush ทำการดาวน์โหลดการอ้างอิงทั้งหมดและพยายามเขียนทับไซต์ / ค่าเริ่มต้นเสมอแม้ว่าโมดูลเหล่านั้นเป็น D / L แล้วหรือมีตัวเลือกที่ไม่มีเอกสารให้ดาวน์โหลดเฉพาะโมดูลที่อัพเดต / ใหม่เท่านั้น? ในคำอื่น ๆ : ฉันเข้าใจถึงประโยชน์ของการใช้ Drush สำหรับการติดตั้งอีกครั้ง แต่คุณจะใช้เพื่อรักษาความสัมพันธ์ของโมดูลในทีมแบบกระจายได้อย่างไร
Creynders

ฉันใช้วิธีนี้มานานกว่าหนึ่งปีแล้ว แต่ตอนนี้ฉันถามว่ามันดีกว่าการมีทุกอย่างใน repo หรือไม่เมื่อทำงานกับนักพัฒนาอื่น ๆ ที่อาจไม่ได้สร้างแพลตฟอร์มใหม่ทุกวัน นอกจากนี้วิธีการนี้ไม่เข้ากันได้กับวิธีการที่ Acquia จัดโครงสร้าง repos สำหรับการโฮสต์คลาวด์
David Meister

6

เพื่อตอบโต้คำตอบของ @ Letharion การใส่ทุกอย่างใน SVN เหมาะสมสำหรับองค์กรบางแห่งและขึ้นอยู่กับว่าคุณจะเปิดตัวอย่างไร การใส่โมดูล contrib และชุดรูปแบบใน SVN สามารถทำให้เข้าใจได้ถ้าคุณต้องการ "ย้อนเวลา" และดูเว็บไซต์รุ่นเก่า

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

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


เพื่อไป "ย้อนเวลา" ฉันยังต้องการสำรองฐานข้อมูลเต็มรูปแบบที่สอดคล้องกันเช่นกัน เพราะการตั้งค่าและการกำหนดค่าบางอย่างอยู่ในฐานข้อมูล นั่นถูกต้องใช่ไหม?
cherouvim

ใช่. โมดูลการสำรองและย้ายข้อมูลและ / หรือการสำรองข้อมูลเก็บถาวรเป็นเพื่อนของคุณที่นี่
mpdonadio

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