How meta/sapling works
Sapling is a cross-platform, Git-compatible source control system. Its user workflow spans command-line source-control operations and the Interactive Smartlog (ISL), which presents repository state and lets users act on it. The wider ecosystem also includes EdenFS for on-demand checkout files and Mononoke for distributed source control. The graph preserves these documented product branches and the major indexed modules; links between unsampled subsystems are omitted unless documented. Evidence is limited to the README, source index, and excerpts provided.
Main entry points: manifest_pipeline.rs Derived Data Manager · main.py EdenFS CLI · App.tsx ISL App · ClientToServerAPI.ts Client API
Components 24
Sapling Client
- Sapling CLI
eden/scm/sapling/server.py - CLI JSON
eden/scm/sapling/json.py
Interactive Smartlog
- ISL App
addons/isl/src/App.tsx - Client API
addons/isl/src/ClientToServerAPI.ts - Server API State
addons/isl/src/serverAPIState.ts - Platform API
addons/isl/src/platform.ts - ISL Shortcuts
addons/isl/src/ISLShortcuts.tsx - ISL Internals
addons/isl/src/Internal.ts - Jotai Utilities
addons/isl/src/jotaiUtils.ts - ISL Server
addons/isl-server/src/serverPlatform.ts - ISL Proxy
addons/isl-server/proxy/server.ts
EdenFS
- EdenFS CLI
eden/fs/cli/main.py - CLI Utilities
eden/fs/cli/util.py - EdenFS Config
eden/fs/cli/config.py - Mount Table
eden/fs/cli/mtab.py - Thrift Client
eden/fs/py/eden/thrift/client.py - Daemon Heartbeat
eden/fs/service/HeartbeatManager.cpp
Mononoke
- Derived Data Manager
eden/mononoke/derived_data/manager/manifest_pipeline.rs - Mercurial Derivation
eden/mononoke/derived_data/mercurial_derivation/src/pipeline.rs - Unodes Derivation
eden/mononoke/derived_data/unodes/pipeline.rs - Deleted Manifest
eden/mononoke/derived_data/deleted_manifest/pipeline.rs - Fastlog Derivation
eden/mononoke/derived_data/fastlog/pipeline.rs - ACL Manifest
eden/mononoke/derived_data/acl_manifest/pipeline.rs
Other components
- Developer
Connections 18
- Developer → Sapling CLI: uses CLI
README.md - Developer → ISL App: uses UI
README.md - Developer → EdenFS CLI: manages checkouts
README.md - ISL App → Client API: uses API
addons/isl/src/App.tsx - ISL App → ISL Shortcuts: renders
addons/isl/src/App.tsx - Client API → Platform API: uses platform
addons/isl/src/ClientToServerAPI.ts - Server API State → Client API: uses API
addons/isl/src/serverAPIState.ts - Server API State → Jotai Utilities: uses utilities
addons/isl/src/serverAPIState.ts - ISL Proxy → ISL Server: creates platform
addons/isl-server/proxy/server.ts - EdenFS CLI → CLI Utilities: uses utilities
eden/fs/cli/main.py - EdenFS CLI → EdenFS Config: uses config
eden/fs/cli/main.py - EdenFS CLI → Mount Table: uses mounts
eden/fs/cli/main.py - EdenFS CLI → Thrift Client: uses client
eden/fs/cli/main.py - Derived Data Manager → Mercurial Derivation: dispatches derivation
- Derived Data Manager → Unodes Derivation: dispatches derivation
- Derived Data Manager → Deleted Manifest: dispatches derivation
- Derived Data Manager → Fastlog Derivation: dispatches derivation
- Derived Data Manager → ACL Manifest: dispatches derivation