Simple tool for managing several git repositories
$ git clone git@github.com:botverse/all.git
Put all within the $PATH
scope.
You can do this for example:
# create a local bin directory
$ mkdir -p ~/.local/bin
# symlink the all script
$ ln -s ~/REPO_LOCATION/all ~/.local/bin/all
# add the created bin directory to the path scope
$ echo "export PATH=$PATH:~/.local/bin" >> ~/.bash_profile
By default all
will understand that all the sub directories of the current CWD
are git repositories, so having this directory structure.
└ ~/workspace/
├ frontend/
├ backend/
└ server/
you will be executing all
in all the repos present in the current directory:
$ ~/workspace/$ all
you get:
frontend
On branch bootstrapping
nothing to commit, working directory clean
backend
On branch bootstrapping
nothing to commit, working directory clean
server
On branch bootstrapping
nothing to commit, working directory clean
You can tell all
where the repositories are so you can execute it from any directory scope. Also you can specify which repositories to manage when working in a feature that won't affect all the repositories.
Check the configuration section for more information.
calling all
with no arguments
will apply git status
to all repos
$ all
is equivalent to
$ all status
calling all
with any argument
will be applied to the repos
$ all pull upstream development
and so on...
Specify repos
If you are working in a specific set of applications, you have to define the ALL_REPOS environment var:
$ ALL_REPOS='modules/http modules/rest' all status
or define only once for that terminal session:
$ export ALL_REPOS='modules/http modules/rest'
...
$ all status # will only check http and rest
Home folder
If you define ALL_HOME
to point to your workspace directory, you can call all
from whichever directory:
$ echo export ALL_HOME=~/workspace >> ~/.bashrc
and then you can do all status
from the module directory you are currently working on.