Have you experienced something the the flow below?

$ cd projects
~/projects $ cd app1
~/projects/app1 $ git pull [--rebase]
~/projects/app1 $ cd ../app2
~/projects/app2 $ git pull [--rebase]
~/projects/app2 $ cd ../app3
~/projects/app3 $ git pull [--rebase]
.
.
.

If you have, you know how painful and boring that gets. The good news is that mani exists making the flow much better.

After configuring, the following will get you the same result:

$ mani run pull

The setup Link to heading

1 Install Link to heading

Use your favourite package manager or manually install.

$ brew install mani

2 Initialise Link to heading

Run the command below in the parent folder where your repositories reside. The tool will create an entry for each in a file named mani.yml.

$ mani init

3 Create your tasks Link to heading

Now that you have all the repositories in your mani.yml file, you can create the tasks to be executed across them.

# ... repositories ...

tasks:
  pull:
    cmd: git pull --rebase

This is a simple command, but the tool will allow you to be very creative on those.

4 Sharing Link to heading

In case you are changing computers, backup the mani.yml file, then in the new computer you can run mani sync to clone all the repositories from scratch.

You can also share that file with collegues instead of telling them to clone five repositories.

5 Being creative Link to heading

Check the documentation to learn more.

A few of the things you can do:

  • Group repositories and have tasks targeted to specific groups
  • Visualise your repositories as a tree
  • Tweak the visual output

Other tools Link to heading

and many more…