git-spark icon indicating copy to clipboard operation
git-spark copied to clipboard

Plot your commit history on the command line with sparklines. A mash up of git and spark and Perl.

=pod

=encoding utf-8

=head1 NAME

App::Git::Spark - Plot your git commit history on the command line with sparklines

=head1 SYNOPSIS

$ git spark --days 14 Stegosaurus
Commits by Stegosaurus over the last 14 days
total: 95   avg: 7   max: 23
10 15 6 23 5 0 0 1 15 0 17 3 0 0
▄▅▂█▂▁▁▁▅▁▆▁▁▁

$ git vspark --months 10 Triceratops
Commits by Triceratops over the last 10 months
total: 263   avg: 26   max: 72
 12 ██▋
 18 ███▉
 72 ███████████████▏
 56 ███████████▊
 16 ███▍
 28 █████▉
 12 ██▋
 19 ████
 19 ████
 11 ██▍

$ git spark -h
usage: git spark [-dhmoswy] [long options...] [AUTHOR]
        -o --hours      Commits from the last x hours
        -d --days       Commits from the last x days
        -w --weeks      Commits from the last x weeks
        -m --months     Commits from the last x months
        -y --years      Commits from the last x years
        -s --scale      Set the max value of the graph. Use this option to
                        compare this graph with other graphs.
        -h --help       Show this message

=head1 DESCRIPTION

Plot your git commit history on the commandline with sparklines and "vertical" sparklines.

=head1 COMPARING GRAPHS

Comparing graphs is often difficult because the scaling changes for different data sets. For example these two data series produce identical graphs despite have very different data.

$ spark 1 2 3 4 5
▁▂▄▆█
$ spark 10 20 30 40 50
▁▂▄▆█

To solve this, you must put a max and a min in front of the data to get consistent scaling. For example:

$ spark 50 1 1 2 3 4 5
█▁▁▁▁▁▁
$ spark 50 1 10 20 30 40 50
█▁▂▃▅▆█

git-spark assumes the min is zero and users can pass in the max using the --scale option. (Note that git-spark chops off the max/min characters from the output so this is all hidden behind the scenes.)

The --scale option is also relavent to git-vspark.

=head1 INSTALLATION

L<cpanm|https://metacpan.org/module/App::cpanminus> is the standard tool the Perl community uses to download and install Perl libraries from the L<CPAN|https://metacpan.org/>. The following should get you up and running quickly:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus
cpanm App::Git::Spark

=head1 SEE ALSO

LTerm::Spark

LTerm::Vspark

=head1 AUTHOR

Eric Johnson

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Eric Johnson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.