38 releases (17 stable)
Uses new Rust 2021
|4.0.0||May 10, 2022|
|4.0.0-rc.1||Mar 13, 2022|
|3.1.0-rc.2||Feb 12, 2022|
|3.0.0-rc.3||Dec 29, 2021|
|0.8.0||Nov 26, 2020|
#8 in Command line utilities
1,193 downloads per month
gfold is a CLI-driven application that helps you keep track of multiple Git repositories.
% gfold astrid ~ /home/neloth/src/astrid unclean (main) firstname.lastname@example.org:db/astrid.git email@example.com fev ~ /home/neloth/src/fev bare (issue2277) none firstname.lastname@example.org gb ~ /home/neloth/src/gb unpushed (dev) https://github.com/hrothgar/gb.git email@example.com pam ~ /home/neloth/src/pam clean (main) https://github.com/onc/pam.git firstname.lastname@example.org
Want the classic display mode?
% gfold -d classic another-day unclean main email@example.com:motm3/another-day.git beautiful-trip bare dev none damaged unpushed dev https://github.com/motm3/damaged.git dive unclean patch firstname.lastname@example.org:motm3/dive.git solo-dolo clean main https://github.com/motm3/solo-dolo.git tpm clean issue15 email@example.com:motm3/the-pale-moonlight.git
If you'd prefer to use the classic display mode by default, and avoid setting the flag every time, you can set it in the config file (see Usage section).
This app displays relevant information for multiple Git repositories in one to many directories. While this tool might seem limited in scope and purpose, that is by design.
gfold looks at every Git repository via traversal from the current working directory.
If you would like to target another directory, you can pass its path (relative or absolute) as the first argument or change the default path in the config file.
--help flag to see all the options for using this application.
gfold gfold .. gfold $HOME gfold ~/ gfold /this/is/an/absolute/path gfold ../../this/is/a/relative/path
gfold will look for a config file at the following path on macOS, Linux and similar operating systems:
On Windows, the lookup path will be in a similar location.
Creating and using the config file is entirely optional.
For config file creation, you can use the
--dry-run flag to print valid TOML.
Here is an example config file creation workflow on macOS, Linux and similar platforms:
gfold -d classic -c never ~/ --dry-run > $HOME/.config/gfold.toml
Here are the contents of the resulting config file:
path = '/home/neloth' display_mode = 'Classic' color_mode = 'Never'
Let's say you created a config file, but wanted to execute
gfold with entirely different settings and you want to ensure that
you do not accidentally inherit options from the config file.
In that scenario you can ignore your config file by using the
You can restore the config file to its defaults by using the same flag.
gfold -i > $HOME/.config/gfold.toml
In addition, you can ignore the existing config file, configure specific options, and use defaults for unspecified options all at once. Here is an example where we want to use the classic display mode and override all other settings with their default values:
gfold -i -d classic > $HOME/.config/gfold.toml
You can back up a config file and track its history with
On macOS, Linux, and most systems, you can link the file back to a
ln -s path/to/repository/gfold.toml $HOME/.config/gfold.toml
Now, you can update the config file within your repository and include the linking as part of your environment setup workflow.
brew install nickgerace/nickgerace/gfold
Note: the tap may not work with Linuxbrew.
pacman -S gfold
You can install
gfold from nixpkgs:
nix-env --install gfold
cargo install gfold
Keeping the crate up to date is easy with cargo-update.
cargo install cargo-update cargo install-update -a
If you do not want to use one of the above installation methods and do not want to clone the repository, you can download a binary from the releases page.
If you would prefer to use a convenience script over downloading directly from the aforementioned releases page, we have one!
You can execute the installation helper script on a compatible system with
bash installed (e.g. macOS and Linux).
curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/install.sh | bash
Note: the installation convenience script does not verify the binary with a checksum. Discretion is advised, including downloading and reading the script before execution.
gfold fully after using the above installation method, execute the following script:
curl -s https://raw.githubusercontent.com/nickgerace/gfold/main/scripts/uninstall.sh | bash
The uninstall script can also be used for cleanup in the event of a failed install.
If you want to install from source locally, and not from crates.io, you can clone the repository and build
( git clone https://github.com/nickgerace/gfold.git cargo install --locked --path gfold )
Please file an issue!
gfold is intended to be ran on any tier one Rust 🦀 target.
Please file an issue if your platform is unsupported.
If you encounter unexpected behavior or a bug, please file an issue and debug
RUST_BACKTRACE=1 RUST_LOG=debug prepended when executing
You can also adjust each variable, as needed, to aid investigation.
Please attach relevant logs from execution with sensitive bits redacted in order to help resolve your issue.
fold from GNU Coreutils is installed on macOS via
brew, it will be named
You can avoid this collision with shell aliases, shell functions, and/or
Here is an example with the
o dropped from
For more information and thanks to contributors, users, and the "community" at large, please refer to the THANKS file.
|Arch Linux community repository||packaging||the
|"One Hundred Rust Binaries"||article||featured