#git-remote #root #fetches #location #cron #git-repository #remotes

app git-remote-fetcher

A utility that fetches all remotes for all git roots south of a given location

1 unstable release

0.1.0 Apr 19, 2020

#6 in #fetches

MIT license

8KB
143 lines

git-remote-fetcher(1) -- recursively fetches remote origins

A utility that fetches all remotes for all git roots south of a given location.

👌 Why

As a high paced engineer working on many git repos I faced an annoying problem; most companies I work for enforce up to date heads when pushing branches. This, and I am one of those infamous rebase'ers, which is not a problem if you are the only author of a branch. But, sometimes there is more than one collaborator. I also found myself git committing, then pushing only for the remote to reject it.

So, I ran up a quick and dirty crontab to git fetch some of my repos every five minutes, and with fishshell's help, I got instant feedback when my head was out of date.

This software wraps that idea in tool-form. I hope to grow this tool while learning rust along the way.

🐲 Usage

Supply a starting point where it will traverse down and collect every directory that is a git root.

git-remote-fetcher <LOCATION>

If you're repo are using the username/password clone, you have to be using a credentials manager. Please see Caching your GitHub password in Git on how to enable that. Even if you're not using GitHub the process still applies.

🙇 Ambition

  • Support glob style for directory, ie git-remote-fetcher '~/{dev,sites}'
  • Perhaps be a daemon itself, rather than run it in crontab?
  • async or thread each fetcher, rather than waterfall
  • Add in a .ignore type file, to specify either repos or directories to not fetch
  • Specify which origins, rather than all like it is now
  • When an error happens, depending on where, we shouldn't fail there, but exit 1. ie try everything, and panic at the end maybe

💩 Known issues

Dependencies

~12MB
~271K SLoC