| Crates.io | gitspace |
| lib.rs | gitspace |
| version | 0.0.1 |
| created_at | 2022-11-21 04:04:20.992218+00 |
| updated_at | 2022-11-21 04:04:20.992218+00 |
| description | git-based tool to clone & symlink multiple repositories in one workspace |
| homepage | |
| repository | https://github.com/capswan/cli-gitspace |
| max_upload_size | |
| id | 719693 |
| size | 43,408 |
Git-based workspaces
cargo install gitspacegitspace initgitspace syncInitialize| Name | Description |
|---|---|
| init | Create a new gitspace config |
| sync | Clone repos, update symlinks, update gitignore |
Maintain| Name | Description |
|---|---|
| alias | generate aliases for gitspace repos, defaults to alias --zsh |
| alias --bash | generate bash / zsh compatible aliases |
| alias --nushell | generate nushell aliases |
| ignore | Update (or create) new gitignore file based on cloned repos |
| clean | Without argument, defaults to clean --all |
| clean --all | removes everything besides gitignore and your gitspace config |
| clean --symlinks | Remove all gitspace generated symlinks |
| clean --repos | Remove all cloned repos (ie. .repos directory) |
| fetch | Fetch all updates from master for local repos |
| version | print gitspace version |
| Name | Link | Description |
|---|---|---|
| git2 | git2 | Clone git repos |
| serde | serde | Serializing/deserializing (for payloads and repogen config ) |
| symlink | symlink | Cross-platform symlinks |
| reqwest-graphql | reqwest-graphql | Querying Github's GraphQL API |
| clap | clap | CLI argument parser |
Origin of this project started when I wrote repogen. While this is still used internally, it's outdated & lacks features. We ended up using submodules last year and remembered some of the pain associated with an otherwise convenient feature. Ultimately wanted something that would allow a team of devs to have a consistent directory structure without being beholden to the all-mighty monolith
There are number of notable options in the monolith/package management space, ranging from pure workspaces to interactive build systems
Few notable examples:
MVPinit and sync) workPost-MVPUpdate README
cargobrewInitialize
.repos directory).repo directoryMore info here
Maintain
brew doctor equivalent command that can be used to do everything.repo
eg. "foo", "bar" repos cloned. Auto-added to .gitignore file
eg.
git pull origin masteron all nested repos
for now print out and allow them to source it
${prefix}/${pwd}Administrate
eg. "foo", "bar" repos cloned.
${opt-label-prefix}-${reponame}-${opt-label-suffix}generated on Github and Gitea