Crates.io | gitspace |
lib.rs | gitspace |
version | 0.0.1 |
source | src |
created_at | 2022-11-21 04:04:20.992218 |
updated_at | 2022-11-21 04:04:20.992218 |
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 gitspace
gitspace init
gitspace sync
Initialize
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:
MVP
init
and sync
) workPost-MVP
Update README
cargo
brew
Initialize
.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 master
on 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