หลังจากแบ่งรหัสของเราเป็นบิตที่ใช้ซ้ำได้เราจะทดสอบและปรับใช้อย่างไร
เราเริ่มต้นจากนักพัฒนาหนึ่งรายและ repo svn หนึ่งตัวมีรหัสของเราทั้งหมด: ^/foo/trunk/module-a ^/foo/trunk/module-b ^/foo/trunk/module-b/submodule-b1 ^/foo/trunk/website1 (ในเวลานี้เป็นการปรับปรุงครั้งใหญ่) หลังจากนี้มีโอกาสเติบโตขึ้นเล็กน้อยเราเริ่มมีปัญหากับการพึ่งพาแบบวนรอบการทดสอบช้าและปัญหาทั่วไปในการใช้รหัสอีกครั้ง (เนื่องจากชุดคุณลักษณะของเว็บไซต์ 1 มีอยู่ในโมดูลทั่วไป) ต้องการทำให้โมดูลโค้ดเป็นโมดูลและคาดว่าเราจะย้ายไปที่คอมไพล์ในไม่ช้า (และเมื่ออ่านที่คอมไพล์ไม่ชอบ svn mega-repos) เราได้เปลี่ยนไปใช้โครงสร้างที่ละเอียดยิ่งขึ้น: ^/module-a/trunk/ ^/module-b/trunk/ ^/module-b/trunk/sumbmodule-b1 ^/earlier-sub-sub-sub-module-c/trunk etc. (about 120 such modules) นี่เป็นแนวคิดที่ยอดเยี่ยม รหัสแบบแยกส่วนเพิ่มเติมชุดทดสอบที่เร็วกว่ามากง่ายต่อเอกสารและอื่น ๆ เราเปิดแหล่งที่มาของส่วนประกอบทั่วไปเพิ่มเติมและทำให้โมดูลทั้งหมดสามารถติดตั้งได้ (ใช้pip install -e .เพื่อติดตั้งในdevelopmentvirtualenv) เราสร้าง^/srv/trunkพื้นที่เก็บข้อมูลที่มีโครงสร้างโฟลเดอร์ของสภาพแวดล้อมรันไทม์เช่น ^/srv/trunk/libสำหรับโมดูล/srv/trunk/srcสำหรับซากของ^/foo/trunk, ^/srv/trunk/wwwเว็บไซต์ ฯลฯ และสุดท้าย (รับความคิดจากผู้ที่ฉันเคยทำงานมานานแล้ว [ https://www.perforce.com/perforce/r12.1/manuals/cmdref/client.html] ) เราได้สร้าง "vcs-" ดึง "ไฟล์ข้อความที่แสดงรายการ repos ที่เกี่ยวข้องทั้งหมดและสถานที่ที่ควรเช็คเอาท์ในสภาพแวดล้อม …