gfold
gfold
is a CLI-driven application that helps you keep track of multiple Git repositories.
% gfold
astrid ~ /home/neloth/src/astrid
unclean (main)
git@github.com:db/astrid.git
neloth@housetelvanni.dev
fev ~ /home/neloth/src/fev
bare (issue2277)
none
neloth@housetelvanni.dev
gb ~ /home/neloth/src/gb
unpushed (dev)
https://github.com/hrothgar/gb.git
neloth@housetelvanni.dev
pam ~ /home/neloth/src/pam
clean (main)
https://github.com/onc/pam.git
neloth@solstheimcommunityserver.org
The classic display mode can be toggled on with --classic
.
% gfold --classic
astrid unclean main git@github.com:db/astrid.git
fev bare main none
gb unpushed dev https://github.com/hrothgar/gb.git
neloth unclean patch git@github.com:telvanni/neloth.git
pam clean main https://github.com/onc/pam.git
prime clean issue2287 git@github.com:bos/prime.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).
Description
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.
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 or change the default path in the config file.
Installation
macOS users: you can use Homebrew to install the tap.
Note: the tap may not work with Linuxbrew.
Arch Linux and AUR users: you can use a Linux distribution that supports installing packages from the Arch User Respository (AUR) to install either the regular package or the development package.
Note: the above example uses paru, which is an AUR helper used to install packages from the AUR.
Rust developers and Cargo users: you can use cargo to install the crate on almost any platform.
Keeping the crate up to date is easy with cargo-update.
Install from source: if you want to install from source, and not from crates.io, you can clone the repository and build gfold
.
Download a binary: if you do not want to use one of the above installation methods, you can download a binary from the releases page.
|
Note: the installation convenience script does not verify the binary with a checksum. Discretion is advised, including downloading and reading the script before execution.
To uninstall gfold
fully, after using this installation method, execute the following script:
|
The uninstall script can also be used for cleanup in the event of a failed install.
+Don't see your preferred package manager?: please file an issue!
Usage
Pass in --help
flag to see all the options for using this application.
Config File
Upon execution, gfold
will look for a config file at the following path on macOS, Linux and similar operating systems:
On Windows, the config file is located at the following path:
{FOLDERID_Profile}\.config\gfold\gfold.json
Creating and using the config file is entirely optional, and you can ignore your config file at any time using the -i
flag.
Example: Creating a Config File
Here is an example creation workflow for a config file.
This config file will default to the classic display mode and set the default path to $HOME
, rather than the current working directory.
Here are the contents of the resulting config file:
Example: Backing Up a Config file
You can back up a config file and track its history with git
.
On macOS, Linux, and most systems, you can link the file back to a git
repository.
Now, you can update the config file within your repository and include the linking as part of your environment setup workflow.
Compatibility
gfold
is intended to be ran on any tier one Rust 🦀 target that git
is also available on.
Please file an issue if your platform is unsupported.
Troubleshooting
If fold
from GNU Coreutils is installed on macOS via brew
, it will be named gfold
.
You can avoid this collision with shell aliases, shell functions, and/or PATH
changes.
Here is an example with the o
dropped from gfold
: