Sparo optimizes performance of Git operations for your large frontend monorepo.
See the code
Sparo optimizes performance of Git operations for your large frontend monorepo.
Familiar interface: The sparo command-line interface (CLI) wrapper offers better defaults and performance suggestions without altering the familiar git syntax. (The native git CLI is also supported.)
A proven solution: Git provides quite a lot of ingredients for optimizing very large repos; Sparo is your recipe for combining these features intelligently.
Simplified sparse checkout: Work with sparse checkout profiles instead of confusing "cones" and globs
Frontend integration: Sparo leverages Rush and PNPM workspace configurations, including the ability to automatically checkout project dependencies
Dual workflows: The sparo-ci tool implements a specialized checkout model optimized for continuous integration (CI) pipelines
Extra safeguards: Avoid common Git mistakes such as checkouts with staged files outside the active view
Go beyond Git hooks: Optionally collect anonymized Git timing metrics in your monorepo, enabling your build team to set data-driven goals for local developer experience (not just CI!)
(Metrics are transmitted to your own service and are not accessible by any other party.)
For details, consult the Sparo documentation.
| Folder | Version | Changelog | Package |
|---|---|---|---|
| /apps/sparo | changelog | sparo | |
| /apps/sparo-lib | sparo-lib |
| Folder | Description |
|---|---|
| /apps/website | The Sparo documentation website |
| /build-tests/sparo-output-test | Building this project tests Sparo command-line outputs |
| /build-tests/sparo-real-repo-test | Building this project tests Sparo by cloning a real repository |
| /build-tests/test-utilities | Code shared between the build test projects in this repository |
Building the projects in this monorepo:
Install the RushJS tool:
npm install -g @microsoft/rush
Clone the repo:
git clone https://github.com/tiktok/sparo.git
Install the dependencies
cd sparo
rush install
Build all projects
rush build
How to invoke your locally built sparo command:
cd apps/sparo
node lib/start.js
TypeScript
91.0%
JavaScript
7.0%
Shell
1.6%
Sparo optimizes performance of Git operations for your large frontend monorepo.
See the code
Sparo optimizes performance of Git operations for your large frontend monorepo.
Familiar interface: The sparo command-line interface (CLI) wrapper offers better defaults and performance suggestions without altering the familiar git syntax. (The native git CLI is also supported.)
A proven solution: Git provides quite a lot of ingredients for optimizing very large repos; Sparo is your recipe for combining these features intelligently.
Simplified sparse checkout: Work with sparse checkout profiles instead of confusing "cones" and globs
Frontend integration: Sparo leverages Rush and PNPM workspace configurations, including the ability to automatically checkout project dependencies
Dual workflows: The sparo-ci tool implements a specialized checkout model optimized for continuous integration (CI) pipelines
Extra safeguards: Avoid common Git mistakes such as checkouts with staged files outside the active view
Go beyond Git hooks: Optionally collect anonymized Git timing metrics in your monorepo, enabling your build team to set data-driven goals for local developer experience (not just CI!)
(Metrics are transmitted to your own service and are not accessible by any other party.)
For details, consult the Sparo documentation.
| Folder | Version | Changelog | Package |
|---|---|---|---|
| /apps/sparo | changelog | sparo | |
| /apps/sparo-lib | sparo-lib |
| Folder | Description |
|---|---|
| /apps/website | The Sparo documentation website |
| /build-tests/sparo-output-test | Building this project tests Sparo command-line outputs |
| /build-tests/sparo-real-repo-test | Building this project tests Sparo by cloning a real repository |
| /build-tests/test-utilities | Code shared between the build test projects in this repository |
Building the projects in this monorepo:
Install the RushJS tool:
npm install -g @microsoft/rush
Clone the repo:
git clone https://github.com/tiktok/sparo.git
Install the dependencies
cd sparo
rush install
Build all projects
rush build
How to invoke your locally built sparo command:
cd apps/sparo
node lib/start.js
TypeScript
91.0%
JavaScript
7.0%
Shell
1.6%