4 releases
0.1.5 | Jan 12, 2022 |
---|---|
0.1.4 | Oct 27, 2020 |
0.1.2 | Oct 27, 2020 |
0.1.1 | Oct 27, 2020 |
0.1.0 |
|
#1057 in Development tools
40KB
875 lines
gmux
Manage multiple git repositories with ease.
gmux
allows you to work on multiple, predefined, Git managed repositories.
Pools
A pool is a collection of repositories and files.
Pools are at the heart of gmux
: they allow you to easily target or exclude
repositories from your Git commands, but you can also share them easily as they
are simple YAML files.
Commands
Building on the pool concept, you have two main commands using gmux
.
By using gmux pool
, you can manage your pools ; add new pools, automatically
populate them, clone repositories by using a pool, etc...
However, you can also forward any Git command by using gmux command
and its
powerful --filter
option.
Use cases
gmux
shines best when used by multiple team members working on a large set
of repositories.
Whereas it's to bootstrap the cloning process, or to ensure multiple
repositories track the same branches, you can share gmux
configurations
to ensure everyone is on the same page.
However, you can also use it as a simple tool to query or edit multiple repositories using Git commands.
Examples
Pools
Print the current pool to the console:
gmux pool
List all available pools:
gmux pool
Create a new pool, starting from the current directory:
gmux pool new projects
Create a new pool in a specific directory:
gmux pool new python /home/user/projects/python
Discover all repositories and files from the current pool directory:
gmux pool discover
Clone, checkout branches and recreate files of the current pool:
gmux pool discover
Commands
Print the pool repositories status:
gmux command status --short
Print the pool repositories active branch that are not master or develop:
gmux command --exclude-filter '(master|develop)' rev-parse --abbrev-ref HEAD
Print the pool repositories ahead/behind commit count if there is any:
gmux command --exclude-filter '0\s0' rev-list --left-right --count @...@{u}
Print the pool repositories commits to merge with commiter and time, from oldest to newest:
gmux command log --pretty=format:'%h%x09%cr%x09%cn%x09%s' --reverse @..@{u}
Dependencies
~16–26MB
~440K SLoC