#!/usr/bin/perl #git log --abbrev=6 --show-linear-break='' --topo-order --color=always --decorate=short --date=format-local:'%Y-%m-%d %H:%M' --format='%C(242)%ad %C(148)%<(6,trunc)%h %C(32)%<(20,trunc)%an %Creset%s%C(auto)%d ―― %b' "$@" | gitlogfilter | less -FXSiRnE my $first = 1; my $linebreaks = 0; while (<>) { if (/^\x1b/){ if ($linebreaks > 1) { print "\n"; } if ($first) { $first = 0; } else { print "\n"; } $linebreaks = 0; } elsif (/^\S/){ if ($linebreaks == 1) { print " ; "; } elsif ($linebreaks == 0) { print " "; } $linebreaks = 0; } elsif (/./){ $linebreaks = 0; } else { $linebreaks++; } s/ ―― $//; s/――/\x1b[38;5;244m――/; s/^ (\d+) files? changed(, (\d+) insertions?\(\+\))?(, (\d+) deletions?\(-\))?$/ \x1b[38;5;22m$3 \x1b[38;5;88m$5/; chomp; print; }