สิ่งหนึ่งที่ฉันชอบเกี่ยวกับวิธีที่ฉันตั้งค่า Subversion คือฉันสามารถมีที่เก็บหลักเดียวกับหลายโปรเจ็กต์ เมื่อฉันต้องการทำงานในโครงการฉันสามารถตรวจสอบโครงการนั้นได้ แบบนี้
\main
\ProductA
\ProductB
\Shared
แล้ว
svn checkout http://.../main/ProductA
ในฐานะผู้ใช้ใหม่ในการคอมไพล์ฉันต้องการสำรวจแนวทางปฏิบัติที่ดีที่สุดในสนามก่อนที่จะตกลงในเวิร์กโฟลว์เฉพาะ จากสิ่งที่ฉันอ่านจนถึงตอนนี้ git จะเก็บทุกอย่างไว้ในโฟลเดอร์. git เดียวที่รากของแผนผังโครงการ ฉันจึงสามารถทำอย่างใดอย่างหนึ่งจากสองอย่าง
- ตั้งค่าโครงการแยกกันสำหรับแต่ละผลิตภัณฑ์
- ตั้งค่าโปรเจ็กต์ขนาดใหญ่รายการเดียวและจัดเก็บผลิตภัณฑ์ในโฟลเดอร์ย่อย
มีการพึ่งพาระหว่างผลิตภัณฑ์ดังนั้นโครงการขนาดใหญ่เดียวจึงเหมาะสม เราจะใช้เซิร์ฟเวอร์ที่นักพัฒนาทุกคนสามารถแชร์โค้ดของพวกเขาได้ ฉันได้ทำงานผ่าน SSH และ HTTP แล้วและส่วนนั้นฉันชอบ อย่างไรก็ตามที่เก็บใน SVN มีขนาดหลาย GB อยู่แล้วดังนั้นการลากไปรอบ ๆ ที่เก็บทั้งหมดในแต่ละเครื่องดูเหมือนจะเป็นความคิดที่ไม่ดีโดยเฉพาะอย่างยิ่งเมื่อเราถูกเรียกเก็บเงินสำหรับแบนด์วิดท์เครือข่ายที่มากเกินไป
ฉันคิดว่าที่เก็บโครงการเคอร์เนลของลินุกซ์มีขนาดใหญ่พอ ๆ กันดังนั้นจึงต้องมีวิธีจัดการกับ Git ที่เหมาะสม แต่ฉันก็ยังไม่เข้าใจ
มีแนวทางหรือแนวทางปฏิบัติที่ดีที่สุดสำหรับการทำงานกับที่เก็บหลายโปรเจ็กต์ขนาดใหญ่มากหรือไม่