No description
- Go 98.8%
- Just 1.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| cmd/workspace | ||
| internal | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .golangci.yml | ||
| go.mod | ||
| go.sum | ||
| justfile | ||
| README.md | ||
workspace
workspace (ws) is a command-line tool for managing multiple git
repositories that live together inside a single workspace directory. Instead
of cd-ing into every repo one by one, ws lets you operate on all of them
at once — for example, running ws status to see the git status of every
repository in your workspace that has changed.
Installation
go install gitlab.com/doertydoerk/workspace/cmd/workspace@latest
Or build from source:
git clone https://gitlab.com/doertydoerk/workspace.git
cd workspace
just install # installs `ws` into $GOPATH/bin, with version info stamped in
just build/just install stamp ws --version with the current git tag,
commit, and build date via -ldflags. Plain go build/go install skip
that and report dev.
Usage
ws help
ws --version
Commands
ws scan— walks the current directory for git repositories and records them in a.workspacemanifest file.ws status— shows the git status (path, branch, changes) of every repo in the manifest that isn't clean, plus any repo that isn't checked out on its default branch (e.g. main).ws update— runsgit pull --rebase --autostashon every repo in the manifest, preserving uncommitted local changes automatically.ws revert— irreversibly discards all uncommitted changes (staged, unstaged, and untracked) in every repo that isn't clean, after listing the affected repos and asking for confirmation (skip with--yes).ws version(orws --version) — prints the version, commit, and build date.
Project layout
cmd/workspace/ # main package / CLI entrypoint
internal/cmd/ # cobra commands and application logic (not importable outside this module)
License
MIT.