Sapling SCM เป็นระบบควบคุมแหล่งที่มาที่เข้ากันได้กับ Git ข้ามแพลตฟอร์ม ปรับขนาดได้สูง
โดยมีจุดมุ่งหมายเพื่อให้ทั้งอินเทอร์เฟซที่เป็นมิตรต่อผู้ใช้และทรงพลังสำหรับผู้ใช้ ตลอดจนความสามารถในการปรับขนาดขั้นสูงเพื่อจัดการกับพื้นที่เก็บข้อมูลที่มีไฟล์หลายล้านไฟล์และการกระทำหลายล้านรายการ
หากต้องการเริ่มใช้ Sapling โปรดดูหน้าเริ่มต้นใช้งานสำหรับวิธีโคลนพื้นที่เก็บข้อมูล Git ที่มีอยู่ ชำระเงินภาพรวมเพื่อดูคุณสมบัติต่างๆ มาจากคอมไพล์เหรอ? ชำระเงินแผ่นโกง Git
Sapling ยังมาพร้อมกับ UI เว็บ Interactive Smartlog (ISL) สำหรับการดูและโต้ตอบกับพื้นที่เก็บข้อมูลของคุณ เช่นเดียวกับ Smartlog แบบโต้ตอบที่ผสานรวม VS Code
Sapling SCM ประกอบด้วยองค์ประกอบหลัก 3 ส่วน:
sl
ฝั่งไคลเอ็นต์และอินเทอร์เฟซเว็บสำหรับผู้ใช้เพื่อโต้ตอบกับ Sapling SCMเป้าหมายความสามารถในการปรับขนาดของ Sapling SCM คือเพื่อให้แน่ใจว่าการดำเนินการควบคุมแหล่งที่มาทั้งหมดจะปรับขนาดตามจำนวนไฟล์ที่นักพัฒนาใช้งาน ไม่ใช่ขนาดของพื้นที่เก็บข้อมูลเอง ช่วยให้นักพัฒนาได้รับประสบการณ์ที่รวดเร็วและมีประสิทธิภาพ แม้จะอยู่ในพื้นที่เก็บข้อมูลขนาดใหญ่ที่มีไฟล์นับล้านไฟล์และมีประวัติคอมมิตที่ยาวมาก
Sapling CLI, sl
เดิมมีพื้นฐานมาจาก Mercurial และแบ่งปันแง่มุมต่างๆ ของ UI และฟีเจอร์ของ Mercurial
รหัส CLI สามารถพบได้ในไดเรกทอรี eden/scm
Mononoke เป็นส่วนประกอบฝั่งเซิร์ฟเวอร์ของ Sapling SCM
แม้ว่าจะใช้ในการผลิตภายใน Meta แต่ยังไม่รองรับการใช้งานภายนอก OSS บิวด์ใน GitHub Actions พร้อมใช้งานสำหรับการทดลองที่ไม่รองรับ
EdenFS คือระบบไฟล์เสมือนสำหรับจัดการการชำระเงินของ Sapling
แม้ว่าจะใช้ในการผลิตภายใน Meta แต่ยังไม่รองรับการใช้งานภายนอก OSS บิวด์ใน GitHub Actions พร้อมใช้งานสำหรับการทดลองที่ไม่รองรับ
EdenFS เพิ่มความเร็วการดำเนินการในพื้นที่เก็บข้อมูลขนาดใหญ่โดยเติมเฉพาะไฟล์ไดเร็กทอรีการทำงานตามต้องการเท่านั้นในขณะที่มีการเข้าถึง สิ่งนี้ทำให้การดำเนินการเช่น checkout
เร็วขึ้นมาก โดยแลกกับประสิทธิภาพเล็กน้อยเมื่อเข้าถึงไฟล์ใหม่เป็นครั้งแรก สิ่งนี้ค่อนข้างมีประโยชน์ในที่เก็บขนาดใหญ่ ซึ่งนักพัฒนามักจะทำงานกับชุดย่อยเล็กๆ ของที่เก็บในแต่ละครั้งเท่านั้น
สามารถดูเอกสารการออกแบบ EdenFS โดยละเอียดเพิ่มเติมได้ที่ eden/fs/docs/Overview.md
ปัจจุบัน Sapling CLI สร้างและทำงานบน Linux, Mac และ Windows สามารถสร้างได้โดยการรัน make oss
ในไดเร็กทอรี eden/scm
และรันไฟล์ปฏิบัติการ sl
ที่เป็นผลลัพธ์
การสร้าง Sapling CLI ต้องใช้ Python 3.8, Rust, CMake และ OpenSSL สำหรับ cli หลัก และ Node และ Yarn สำหรับ ISL web UI
คุณสามารถรายงานปัญหาบน GitHub หรือเข้าร่วม Discord
โครงการหลักได้รับอนุญาตภายใต้ GPL-2.0
เว็บไซต์และ ISL ได้รับอนุญาตภายใต้ MIT
โครงการย่อยของไลบรารี เช่น มินิไบต์ อาจมีใบอนุญาตที่แตกต่างกัน โปรดดูไฟล์ LICENSE
และส่วนหัวของซอร์สโค้ดในแต่ละไลบรารีสำหรับข้อมูลโดยละเอียด