git-graph: do not count renames as huge additions and deletions
[u/fanf2/git-graph.git] / git-graph
index 278e424..2516a2b 100755 (executable)
--- a/git-graph
+++ b/git-graph
@@ -16,7 +16,19 @@ GetOptions(\%opt, qw{
        overlay|o
        stack|s
        width|w=i
-}) or exit 1;
+}) or do {
+       print STDERR <<END;
+usage: git-graph [options]
+       -c | --cancel   +/- counts cancel out
+       -o | --overlay  +/- counts are overlaid as # (default)
+       -s | --cancel   +/- counts are stacked
+       --height [n]    Set height of graph
+       -h [n]          (height of terminal is default)
+       --width [n]     Set horizontal scale
+       -w [n]          (fit to width of terminal by default)
+END
+       exit 1;
+};
 
 $opt{overlay} = 1 unless $opt{cancel} or $opt{stack};
 
@@ -33,7 +45,7 @@ my $canmax = 0;
 
 my $date;
 
-for (qx{git log --pretty=format:%ct --shortstat --since='$height days ago'}) {
+for (qx{git log --find-renames --shortstat --pretty=format:%ct --since='$height days ago'}) {
        next if m{^\s*$};
        if (m{^(\d{10})\n$}) {
                $date = int ($1 / 86400);
@@ -87,7 +99,7 @@ for my $date ($today - $height .. $today) {
            "#" x ($mod && 1 + $mod * $scale),
            "+" x ($add && 1 + $add * $scale),
            "-" x ($del && 1 + $del * $scale);
-       if (length $line > $width) {
+       if (length $line > $width + 30) {
                $line = sprintf "## %d ##\e[32m++ %d ++\e[31m-- %d --\e[0m\n",
                    $mod, $add, $del;
                $line = "$greg \e[33m" . "#"x($width + 16 - length $line) . $line;