## Description
On start, the server clones repositories and does sparse-checkout for
package paths as specified in config. Tasks are spawned separately for
each repository.
Example: The sequence of `git` commands for the `mystenlabs/sui` repo
and its packages look as follows:
```
git clone -n --depth=1 --filter=tree:0 https://github.com/mystenlabs/sui $TMPDIR
git sparse-checkout -C $TMPDIR set --no-cone crates/sui-framework/packages/deepbook crates/sui-framework/packages/move-stdlib crates/sui-framework/packages/sui-framework crates/sui-framework/packages/sui-system
git -C $TMPDIR checkout
```
## Test Plan
Check that we produce `git` clone and checkout commands faithfully
---
If your changes are not user-facing and not a breaking change, you can
skip the following section. Otherwise, please indicate what changed, and
then add to the Release Notes section as highlighted during the release
process.
### Type of Change (Check all that apply)
- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration
### Release notes