git-mg

module
v0.0.0-...-ee32feb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2021 License: BSD-3-Clause

README

git-mg

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

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

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.

Directories

Path Synopsis
cmd
git-fsmonitor
A Go version of the sample Perl script to trap modifications from watching file system notificatios.
A Go version of the sample Perl script to trap modifications from watching file system notificatios.
git-preflight
{ // Comments are allowed, this is a JSONR file.
{ // Comments are allowed, this is a JSONR file.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL