gfold 1.2.0

CLI tool to help keep track of your Git repositories.
Documentation

gfold

tag crates.io docs.rs build license

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

user at hostname in ~/git
% gfold
great-journey      unclean   main      git@github.com:truth/great-journey.git
installation-zero  bare      main      https://github.com/the-ark/installation-zero.git
sierra             unpushed  dev       https://github.com/forward-unto-dawn/sierra.git
spark              clean     issue343  git@github.com:guilty/spark.git
tartarus           unclean   delta     git@github.com:covenant/tartarus.git
voi                clean     main      https://github.com/earth/voi.git

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.

brew install nickgerace/gfold/gfold

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.

yay -S gfold
paru -S gfold

You can use cargo to install the crate on almost any platform.

cargo install gfold

Keeping the crate up to date is easy with cargo-update.

cargo install cargo-update
cargo install-update -a

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=$(command -v gfold) && [ "$GFOLD" != "" ] && du -h $GFOLD && strip $GFOLD && du -h $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:

  1. Use the which command on compatible platforms (so long as gfold is in your PATH)
  2. Check your cargo install settings (if you installed with cargo install)

Usage

Pass in the -h, or --help, flag to see all the options for using this application.

gfold
gfold ..
gfold $HOME
gfold /this/is/an/absolute/path
gfold ../../this/is/a/relative/path

Compatibility

gfold is intended to be ran on any tier one Rust target. Please file an issue if your platform is unsupported.

Other Documentation

Code of Conduct

This repository follows and enforces the Rust programming language's Code of Conduct.

Additional Information

Special Thanks To...