Sapling SCM es un sistema de control de fuente multiplataforma, altamente escalable y compatible con Git.
Su objetivo es proporcionar interfaces potentes y fáciles de usar para los usuarios, así como una escalabilidad extrema para manejar repositorios que contienen muchos millones de archivos y muchos millones de confirmaciones.
Para comenzar a usar Sapling, consulte la página Introducción para saber cómo clonar sus repositorios Git existentes. Consulte la descripción general para echar un vistazo a las distintas funciones. ¿Vienes de Git? Consulte la hoja de referencia de Git.
Sapling también viene con una interfaz de usuario web Interactive Smartlog (ISL) para ver e interactuar con su repositorio, así como un Smartlog interactivo integrado con VS Code.
Sapling SCM se compone de tres componentes principales:
sl
del lado del cliente y la interfaz web para que los usuarios interactúen con Sapling SCM.Los objetivos de escalabilidad de Sapling SCM son garantizar que todas las operaciones de control de código fuente escale con la cantidad de archivos utilizados por un desarrollador, y no con el tamaño del repositorio en sí. Esto permite experiencias de desarrollador rápidas y eficaces incluso en repositorios masivos con millones de archivos e historiales de confirmaciones extremadamente largos.
La CLI de Sapling, sl
, se basó originalmente en Mercurial y comparte varios aspectos de la interfaz de usuario y características de Mercurial.
El código CLI se puede encontrar en el subdirectorio eden/scm
.
Mononoke es el componente del lado del servidor de Sapling SCM.
Si bien se utiliza en producción dentro de Meta, aún no es compatible para uso externo. Las compilaciones de OSS en GitHub Actions están disponibles para experimentación no compatible.
EdenFS es un sistema de archivos virtual para gestionar los pagos de Sapling.
Si bien se utiliza en producción dentro de Meta, aún no es compatible para uso externo. Las compilaciones de OSS en GitHub Actions están disponibles para experimentación no compatible.
EdenFS acelera las operaciones en repositorios grandes al completar solo los archivos del directorio de trabajo a pedido, a medida que se accede a ellos. Esto hace que operaciones como checkout
sean mucho más rápidas, a cambio de un pequeño impacto en el rendimiento al acceder por primera vez a archivos nuevos. Esto es bastante beneficioso en repositorios grandes donde los desarrolladores a menudo solo trabajan con un pequeño subconjunto del repositorio a la vez.
Puede encontrar documentación de diseño de EdenFS más detallada en eden/fs/docs/Overview.md.
La CLI de Sapling actualmente se compila y ejecuta en Linux, Mac y Windows. Se puede compilar ejecutando make oss
en el directorio eden/scm
y ejecutando el ejecutable sl
resultante.
La creación de la CLI de Sapling requiere Python 3.8, Rust, CMake y OpenSSL para la CLI principal, y Node y Yarn para la interfaz de usuario web de ISL.
Puede informar un problema en GitHub o unirse a Discord
El proyecto principal tiene licencia GPL-2.0.
El sitio web y ISL tienen licencia del MIT.
Los subproyectos de biblioteca, como los minibytes, pueden tener licencias diferentes. Consulte el archivo LICENSE
y los encabezados del código fuente de cada biblioteca para obtener información detallada.