A tool to facilitate working with very large git repos.
Originally, git-mg
was intended to be a complete wrapper that made git work sanely in the typical degenerate work environment which is substantially different than how many open source projects are managed. Much of this is as-yet unfit for human conumption, but the peripheral tools git-sync
and git-preflight
are very useful and sufficiently polished to be released.
git-sync
allows near-instant bidirectional syncing of arbitrarily large working directories by augmenting git in the common case of small incrememtal changes. A fairly standard use case is editing files on one machine, say a Mac laptop, and compiling things on a remote system running Linux. In theory it should work on Windows too, but that hasn't been strongly verified.
More information is available in the git-sync/README.md.
git-preflight
runs a set of triggers on files modified since the last merge base. The goal is to rapidly dispatch commands against the minimal set of files to ensure some basic repo hygiene. It can be thought of as a superset of build, test and lint-like processes. The operating theory is that no matter what, you have to interact with source control to check in code, so it is the ideal place to insert a dead-simple interface to sanity check before you commit/push code. Ideally, this reduces the amount cognitive function wasted trying to remember the coterie of ramshackle tools that invariably acrete in a large codebase. You'll thank me when you turn 30.
More information is available in the git-preflight/README.md.