The multi-repo manager
Project description
{width=200px}
"Forsooth, we must rebase. Pray thee, direct me to thy spaghet"
- ye olde fullstack dev, circ. 2005
Gimme: The Multi-Repo Manager
This is a utility designed to help developers quickly hop between and manage multiple local repositories. The main utility of this CLI is jumping between repos with the base command, gimme [repo]
, but it also provides a few other simple quality of life features.
Check out gimme -h
for more info.
Table of Contents
- Setup
- Prerequisites
- Installation
- [Basic Usage](#Basic Usage)
Setup
Prerequisites
Make sure you have pipx
and python ^3.8
installed. If you don't you can install them with your favorite package mananger (brew, apt, pip+pyenv, etc).
~$ sudo brew install pipx python3
Installation
Install gimmetool
using pipx
:
~$ pipx install gimmetool
Then run first-time setup:
~$ sudo gimme init
where do all of your repositories live (default: ~/)? ~/code
shell config file [~/.zshrc]:
Initialization successful. Restart your shell to begin.
~$
After gimme is initialized, you will need to restart your terminal or re-source
your shell configs:
~$ source ~/.zshrc
Basic Usage.
Now, you should be ready to go:
~$ gimme --version
output: <version number>
Try jumping from any directory to your favorite local repository.
# jumps from ~/ directly to your repo!
~$ gimme frontend
~/code/frontend$
# also supports partial matching
~$ gimme back
~/code/backend$
Other Tools
There are a few other tricks gimme
has up its sleeve. Some help streamline jumps between your most common repos. Others help manage and prune large sets of repositories.
Favorites
Let's say you have the following repos:
/Users/bob/code/
- lib-login/
- lib-log/
- logger/
But you spend most of your time in logger.
Jumping with gimme log
might result in a jump to a repo you don't actually want to be in:
~$ gimme log
~/code/lib-login$ # really? >:(
But, by adding the repo you want as a favorite, gimme
will prioritize it.
gimme config add favorite /User/bob/code/logger
Now, the jump is unambiguous:
~$ gimme log
~/code/logger$ # :D
Aliases
Sometimes, there are repos with longer names that you'd rather not change, but that you'd also rather not type out.
/User/bob/code/legacy-backend-2013
You can create an alias that maps a shortcut to a more specific search.
~$ gimme config add alias back2018 legacy-backend-2018
Now, you don't have to be as specific with your jumps to get to the repo you want, and you don't have to change the name of the directory and inevitably forget the name of the remote origin it actually belongs to.
~$ gimme back13
~/code/legacy-backend-2013$
Listing Repositories
Gimme also lets you list all repositories and reports on what branches exist in them locally.
~$ gimme list (or gimme ls)
/Users/bob/code:
my-backend
* master
- dev
- working-branch
my-frontend
- new-homepage
* main
- temp-wip-changes
my-database
* main
Mass Updates
A little tired of having to pull multiple times on a bunch of separate repos? gimme
will update the default branch of every repo in your groups!
~$ gimme updates
- Updating 'my-backend'...done
- Updating 'my-frontend'...done
- Updating 'my-database'...done
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gimmetool-0.1.20.tar.gz
.
File metadata
- Download URL: gimmetool-0.1.20.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1156ac34d2b8699a48b0cac46d8c5b5ae0e0fc5566a0edc2073dfb937ee5af7 |
|
MD5 | fce4ca4e7cd76e81689b6c5b7b79ec33 |
|
BLAKE2b-256 | 385e48261999025e0102c6a13ee7c79cee60c9f6bc92ce0026f721a9d7b192f8 |
File details
Details for the file gimmetool-0.1.20-py3-none-any.whl
.
File metadata
- Download URL: gimmetool-0.1.20-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e24216ecd4f9be531a0fd1ee750e1f6446b1fc99b90c2d2f227ef432372ac91 |
|
MD5 | 6599a406d61267e1123fd73875050663 |
|
BLAKE2b-256 | 1fa680854fc6e263e1f28ca97291ed9655db295dbbc2a4ce0985c6982ef3ba9f |