Sapling SCM은 크로스 플랫폼, 확장성이 뛰어난 Git 호환 소스 제어 시스템입니다.
사용자에게 친숙하고 강력한 인터페이스를 제공할 뿐만 아니라 수백만 개의 파일과 수백만 개의 커밋이 포함된 리포지토리를 처리할 수 있는 극도의 확장성을 제공하는 것을 목표로 합니다.
Sapling 사용을 시작하려면 시작하기 페이지에서 기존 Git 리포지토리를 복제하는 방법을 참조하세요. 다양한 기능을 살펴보려면 개요를 확인하세요. Git에서 오시나요? Git 치트 시트를 확인하세요.
Sapling에는 저장소를 보고 상호 작용할 수 있는 ISL(Interactive Smartlog) 웹 UI와 VS Code 통합 대화형 Smartlog도 함께 제공됩니다.
Sapling SCM은 세 가지 주요 구성 요소로 구성됩니다.
sl
명령줄 및 웹 인터페이스입니다.Sapling SCM의 확장성 목표는 모든 소스 제어 작업이 저장소 자체의 크기가 아니라 개발자가 사용하는 파일 수에 따라 확장되도록 하는 것입니다. 이를 통해 수백만 개의 파일과 매우 긴 커밋 기록이 포함된 대규모 리포지토리에서도 빠르고 성능이 뛰어난 개발자 환경을 구현할 수 있습니다.
Sapling CLI인 sl
은 원래 Mercurial을 기반으로 했으며 Mercurial의 UI와 기능의 다양한 측면을 공유합니다.
CLI 코드는 eden/scm
하위 디렉터리에서 찾을 수 있습니다.
Mononoke는 Sapling SCM의 서버측 구성 요소입니다.
Meta 내 프로덕션에서는 사용되지만 아직 외부 사용은 지원되지 않습니다. GitHub Actions의 OSS 빌드는 지원되지 않는 실험에 사용할 수 있습니다.
EdenFS는 Sapling 체크아웃을 관리하기 위한 가상 파일 시스템입니다.
Meta 내 프로덕션에서는 사용되지만 아직 외부 사용은 지원되지 않습니다. GitHub Actions의 OSS 빌드는 지원되지 않는 실험에 사용할 수 있습니다.
EdenFS는 액세스할 때 필요에 따라 작업 디렉터리 파일을 채워서 대규모 저장소에서 작업 속도를 높입니다. 이를 통해 새 파일에 처음 액세스할 때 약간의 성능 저하가 발생하는 대신 checkout
같은 작업이 훨씬 빨라집니다. 이는 개발자가 한 번에 저장소의 작은 하위 집합으로만 작업하는 경우가 많은 대규모 저장소에서 매우 유용합니다.
더 자세한 EdenFS 설계 문서는 eden/fs/docs/Overview.md에서 찾을 수 있습니다.
Sapling CLI는 현재 Linux, Mac 및 Windows에서 빌드 및 실행됩니다. eden/scm
디렉토리에서 make oss
실행하고 결과 sl
실행 파일을 실행하여 빌드할 수 있습니다.
Sapling CLI를 구축하려면 기본 cli용 Python 3.8, Rust, CMake 및 OpenSSL과 ISL 웹 UI용 Node 및 Yarn이 필요합니다.
GitHub에서 문제를 보고하거나 Discord에 참여할 수 있습니다.
주요 프로젝트는 GPL-2.0에 따라 라이센스가 부여됩니다.
웹사이트와 ISL은 MIT에 따라 라이선스가 부여됩니다.
미니바이트와 같은 라이브러리 하위 프로젝트에는 다른 라이센스가 있을 수 있습니다. 자세한 내용은 각 라이브러리의 LICENSE
파일 및 소스 코드 헤더를 참조하세요.