Skip to main content

The multi-repo manager

Project description

gimme meme{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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gimmetool-0.1.20.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

gimmetool-0.1.20-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

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

Hashes for gimmetool-0.1.20.tar.gz
Algorithm Hash digest
SHA256 c1156ac34d2b8699a48b0cac46d8c5b5ae0e0fc5566a0edc2073dfb937ee5af7
MD5 fce4ca4e7cd76e81689b6c5b7b79ec33
BLAKE2b-256 385e48261999025e0102c6a13ee7c79cee60c9f6bc92ce0026f721a9d7b192f8

See more details on using hashes here.

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

Hashes for gimmetool-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 9e24216ecd4f9be531a0fd1ee750e1f6446b1fc99b90c2d2f227ef432372ac91
MD5 6599a406d61267e1123fd73875050663
BLAKE2b-256 1fa680854fc6e263e1f28ca97291ed9655db295dbbc2a4ce0985c6982ef3ba9f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page