Skip to content

maraisr/git-remote-fetcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A tool to help me keep my git remote's synced

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages