tiktok-sparo/apps/sparo
2024-10-01 20:22:25 +00:00
..
bin Remove SparoCommandSelector.ts in favor of explicit entry points 2024-02-29 22:53:06 -08:00
config feat: introduce sparo-lib 2024-02-21 11:02:36 -08:00
src chore: fix pipeline display and issues 2024-03-11 15:17:48 -07:00
.eslintrc.js Initial commit of files being released as open source 2024-02-20 21:42:28 -08:00
.npmignore Cherry-pick 06e9af3c95 2024-07-24 21:00:45 -07:00
CHANGELOG.json Update changelogs [skip ci] 2024-10-01 20:22:25 +00:00
CHANGELOG.md Update changelogs [skip ci] 2024-10-01 20:22:25 +00:00
LICENSE Initial commit of files being released as open source 2024-02-20 21:42:28 -08:00
package.json Bump versions [skip ci] 2024-08-27 17:48:21 +00:00
README.md Update the NPM README.md 2024-03-04 23:54:57 -08:00
tsconfig.json feat: introduce sparo-lib 2024-02-21 11:02:36 -08:00

Sparo

Is Git too slow in your frontend monorepo?

By default git clone will download every file in your Git repository, as well as the complete history of every file. For small repositories, that's no big deal. But as your monorepo accumulates projects and years of history, Git operations become slower and slower, until one day git status is taking 10 seconds or more. What to do?

Clone faster!

Sparo optimizes performance of Git operations for your large frontend monorepo.

Key features

  • 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.)