Skip to content

Latest commit

 

History

History
103 lines (60 loc) · 2.26 KB

README.md

File metadata and controls

103 lines (60 loc) · 2.26 KB

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.

Installation

gmux is available on crates.io as well as the AUR.

Using cargo:

cargo install gmux

Using an AUR helper:

paru -S gmux
yay -S gmux
pacaur -S gmux

Usage

Pools

Print the current pool to the console:

gmux pool

List all available pools:

gmux pool list

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 checkout

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}