ggl --- global git log
This tool shows you a log of git commits from multiple repositories ordered by
time. The output is nearly identical to the default git-log
.
features
The goal of this tool is to discover a commit that broke things, and as such, we
use --topo-order
when presenting the results. This means that a merge commit
is followed by all of its children before other commits are shown.
You can ask ggl
to run git fetch
for you.
You can specify which paths you care about in busy repository with filters.
By default, we go 1 week into the past, and of course you can set your own value.
install
cargo
$ cargo install ggl
from source
$ git clone https://github.com/honza/ggl
$ cd ggl
$ cargo build --release
$ ./target/release/ggl --help
config
A yaml file which specifies which repositories you want to include, and their respective remotes and branches.
A block
is a collection of repositories that share a common root directory.
When running git fetch
we use the remote
and branch
information.
By default, we don't run git fetch
: you have to pass in the --fetch
flag.
If you never wish to fetch a repo, you can say so in the config.
blocks:
- root: /home/abc/code
repositories:
- name: "linux"
path: "linux"
remote: "upstream"
branch: "master"
fetch: true
filters:
- filter_type: Include
paths:
- src/important-file.txt
ggl
will look for the config file in the following places:
-
--config
flag $XDG_CONFIG_HOME/ggl.yaml
-
config.yaml
in the current directory
usage
ggl
USAGE:
ggl [FLAGS] [OPTIONS]
FLAGS:
-f, --fetch Run git fetch
-h, --help Prints help information
-j, --json Print JSON
-r, --reverse Reverse the result
-V, --version Prints version information
OPTIONS:
-c, --config <config> Path to config file
-u, --until <until> How far into the past should we go? e.g. 2022-12-31; defaults to one week ago
license
GPLv3 or later