gfold
gfold
is a CLI-driven application that helps you keep track of multiple Git repositories.
Description and Motivation
This app displays relevant information for multiple Git repositories in one, or multiple, directories. While this tool might seem limited in scope and purpose, that is by design.
It prints each repository in alphabetical order, and pads each result based on the longest directory, branch, and status string.
By default, gfold
looks at every Git repository via traversal from the current working directory.
However, if you would like to target another directory, you can pass that path (relative or absolute) as the first argument.
Where is gfld
?
gfld
was an experimental, minimal version of gfold
.
It was intended to potentially replace gfold
, but has since been removed.
All optimizations and lessons learned from the project have since been integrated into gfold
.
Check out the removal issue to learn more.
Installation
You can use macOS Homebrew or Linuxbrew to install the tap.
You can use a Linux distribution that supports installing packages from the AUR to install: gfold (builds from source) and/or gfold-git (VCS/development package). Many people choose to use an AUR helper, such as yay or paru, in order to install their AUR packages.
You can use cargo to install the crate on almost any platform.
Keeping the crate up to date is easy with cargo-update.
Post-Installation
It is highly recommended to run strip
against the binary on compatible systems to reduce executable size.
The following script was tested on macOS and Linux systems:
GFOLD= && [ && && &&
The above script will execute silently if
gfold
is not installed.
If you do not know where gfold
was installated to, you can try the following:
- Use the
which
command on compatible platforms (so long asgfold
is in yourPATH
) - Check your
cargo install
settings (if you installed withcargo install
)
Usage
Pass in the -h
, or --help
, flag to see all the options for using this application.
Compatibility
gfold
is intended to be ran on any tier one Rust target.
Please file an issue if your platform is unsupported.
Other Documentation
- CHANGELOG.md: follows the Keep a Changelog format
- DEVELOPING.md: developer tips, tricks, and notes
- RELEASE.md: release process notes
Code of Conduct
This repository follows and enforces the Rust programming language's Code of Conduct.
Additional Information
- Author: Nick Gerace
- License: Apache 2.0
Special Thanks To...
- @jrcichra for adding multi-OS support to the original, early-stage CI pipeline
- @orhun for maintaining all AUR packages
- @yaahc for mentoring during an early refactor