11 releases
0.1.10 | May 25, 2020 |
---|---|
0.1.9 | May 7, 2020 |
0.1.8 | Apr 3, 2020 |
0.1.7 | Mar 24, 2020 |
0.1.5 | Feb 25, 2020 |
#2769 in Command line utilities
54 downloads per month
9KB
150 lines
mgit
Multi-git is a quick tool that could easily have been created with some shell scripts, but it's a nice project to tackle a part of my daily workflow. It performs git actions on multiple directories within the current tree.
It will:
- walk the directory tree;
- traverse and find all git projects;
- perform
git
with all the arguments you passed tomgit
. - collect output per directory;
- outputting thread-safe in the main thread;
It can even be tweaked with the environment variable MGIT_PARALLEL
(defaulting to number of cpus times 8).
Examples
Keeping your indices up-to-date:
$ mgit fetch
Keeping your code up to date (if no conflicts):
$ mgit pull --ff-only
Keeping your code up to date, rebasing and using autostash:
$ mgit pull --rebase --autostash
Output
Per (found) git repository, the output will show:
- The path of the repository on disk.
- The output for the git action on that repository.
As a summary it will show some statistics:
Success: 110, Warnings: 3
Roadmap / ideas
- Use async.
- Benchmark (and optimize?).
Changelog
0.1.10
- Updated dependencies.
0.1.9
- Increased default thread count.
- Updated dependencies.
0.1.8
- Updated dependencies.
0.1.7
- Updated libc.
0.1.6
- Updated walkdir dependency.
0.1.5
- Add empty line at the end of the output.
0.1.4
- Updated dependencies.
0.1.3
- Output the amount of projects affected (and the command) up front.
0.1.2
- Moved output collection into spawned thread to release file handles earlier.
0.1.1
- Add a summary at the end of the output.
0.1.0
- Initial working version.
License
Dependencies
~0.2–8MB
~45K SLoC