แก้ไข: ไม่เหมือนคำถามที่คล้ายกันเช่นการย้าย repo SVN หลาย GB ไปยัง Git หรือ /programming/540535/managing-large-binary-files-with-git สถานการณ์ของฉันไม่เกี่ยวข้องกับโครงการย่อยหลายโครงการ สามารถแปลงเป็น submoduels คอมไพล์ได้อย่างง่ายดายหรือไฟล์ไบนารี่ขนาดใหญ่สองสามตัวที่เหมาะสำหรับ git-annex มันเป็นพื้นที่เก็บข้อมูลเดียวที่ไบนารีเป็นชุดทดสอบที่คู่กับรหัสแหล่งที่มาหลักของการแก้ไขเดียวกันแน่นเหมือนว่าพวกเขาเป็นสินทรัพย์เวลารวบรวมเช่นกราฟิก
ฉันกำลังตรวจสอบการสลับพื้นที่เก็บข้อมูลขนาดกลาง / ขนาดใหญ่ (ผู้ใช้ 50 ราย, รุ่น 60k, ประวัติ 80GB, สำเนาทำงาน 2Gb) จาก svn เมื่อจำนวนผู้ใช้เพิ่มขึ้นมีจำนวนมากในลำตัวและคุณลักษณะมักจะแพร่กระจายออกไปในหลายคอมมิททำให้การตรวจสอบโค้ดทำได้ยาก นอกจากนี้หากไม่มีการแตกแขนงออกมาจะไม่มีวิธี "รหัส" ที่ไม่ดีออกความคิดเห็นสามารถทำได้หลังจากมีการผูกมัดลำต้นเท่านั้น ฉันกำลังตรวจสอบทางเลือก ฉันหวังว่าเราสามารถย้ายไปคอมไพล์ แต่ฉันมีปัญหาบางอย่าง
ปัญหาของการซื้อคืนในปัจจุบันจนถึงขนาดของคอมไพล์คือขนาด มี cruft เก่าจำนวนมากอยู่ในนั้นและการทำความสะอาดด้วย - ฟิลเตอร์สาขาเมื่อแปลงเป็นคอมไพล์สามารถลดขนาดลงตามลำดับความสำคัญประมาณ 5-10GB นี่ยังใหญ่เกินไป เหตุผลที่ดีที่สุดสำหรับขนาดพื้นที่เก็บข้อมูลขนาดใหญ่คือมีเอกสารไบนารีจำนวนมากที่ถูกป้อนเข้าสู่การทดสอบ ไฟล์เหล่านี้แตกต่างกันระหว่าง. 5mb และ 30mb และมีหลายร้อยไฟล์ พวกเขายังมีการเปลี่ยนแปลงค่อนข้างมาก ฉันดูที่ submodules, git-annex และอื่น ๆ , แต่การทดสอบใน submodule นั้นรู้สึกผิด, เช่นเดียวกับการมีภาคผนวกสำหรับไฟล์จำนวนมากที่คุณต้องการประวัติเต็ม.
ดังนั้นลักษณะการกระจายของคอมไพล์เป็นจริงสิ่งที่ปิดกั้นฉันจากการใช้มัน ฉันไม่สนใจเรื่องการกระจายฉันแค่ต้องการฟีเจอร์การรวมสาขาและการผสานที่ทรงพลัง อย่างที่ฉันคิดว่า 99.9% ของผู้ใช้คอมไพล์ทำเราจะใช้พื้นที่เก็บข้อมูลส่วนกลางที่มีความสุข
ฉันไม่แน่ใจว่าฉันเข้าใจว่าเหตุใดผู้ใช้แต่ละคนจึงต้องมีประวัติในท้องถิ่นแบบเต็มเมื่อใช้ git? หากเวิร์กโฟลว์ไม่ได้รับการกระจายอำนาจข้อมูลนั้นจะทำอะไรในดิสก์ของผู้ใช้ ฉันรู้ว่าใน git รุ่นล่าสุดคุณสามารถใช้โคลนตื้นที่มีประวัติล่าสุดเท่านั้น คำถามของฉันคือ: เป็นไปได้หรือไม่ที่จะทำเช่นนี้เป็นโหมดมาตรฐานของการดำเนินงานสำหรับทั้งทีม? สามารถตั้งค่า git ให้ตื้นได้ตลอดเวลาเพื่อให้คุณมีประวัติแบบเต็มเท่านั้นจากส่วนกลาง แต่ผู้ใช้โดยค่าเริ่มต้นมีประวัติ 1000 revs เท่านั้น? ตัวเลือกของหลักสูตรนั้นคือเพียงแค่แปลง 1,000 revs เป็น git และเก็บ svn repo ไว้สำหรับโบราณคดี ในสถานการณ์สมมตินั้นเราจะพบปัญหาเดียวกันอีกครั้งหลังจากการตรวจสอบเอกสารการทดสอบหลายพันครั้งต่อไป
- เป็นดีปฏิบัติที่ดีที่สุดสำหรับการใช้คอมไพล์ด้วย Repos ขนาดใหญ่ที่มีไฟล์ไบนารีหลายอย่างที่คุณว่าไม่ต้องการประวัติศาสตร์? แนวทางปฏิบัติและแบบฝึกหัดที่ดีที่สุดส่วนใหญ่ดูเหมือนจะหลีกเลี่ยงกรณีนี้ พวกเขาแก้ปัญหาของไบนารีขนาดใหญ่ไม่กี่หรือเสนอทิ้งไบนารีทั้งหมด
- การโคลนแบบตื้นสามารถใช้งานได้ในโหมดปกติหรือเป็น "แฮ็ค" หรือไม่?
- สามารถใช้ submodules สำหรับรหัสที่คุณมีการอ้างอิงที่รัดกุมระหว่างการแก้ไขแหล่งที่มาหลักและการแก้ไข submodule (เช่นในการรวบรวมไบนารี่เวลาอ้างอิงหรือชุดทดสอบหน่วย)?
- "ใหญ่เกินไป" สำหรับพื้นที่เก็บข้อมูลคอมไพล์ในสถานที่มีขนาดเท่าใด เราควรหลีกเลี่ยงการสลับถ้าเราสามารถทำให้มันลดลงถึง 4GB? 2GB?