Petr Baudis wrote: > FYI, I plan to release 0.11.2 this evening. I'll try to go through some > more queued patches before and update cg-log to fully use git-rev-list. In that case, you might want to have a look at this patch. I've been tinkering with cg-log and cg-diff for some time, and just about got ready to send you a patch. Sorry about the monster patch, but I wanted to get it to you quickly... ... [PATCH] Many new features for cg-diff and cg-log Both cg-diff and cg-log get: - A common infrastructure for option parsing, that allows for combinations of options like all getopt-using programs. So you can say: cg-log -cfm cg-diff foo --color cg-log -sfrlinus foobar At the same time, you get decent error reporting on illegal options. - A common infrastructure for colorization. cg-log and cg-diff share setup, and sed scripts for colorization. - diffstat (or rather, git-apply --stat) support. - Support for the new -M, -C and -B switches to the git-diff-* brothers. - Automatic search in less, so you can jump to the next commit/diff chunk by "n". - Automatic color if the COGITO_AUTO_COLOR environment variable is set. - "Smart pager" support - less isn't invoked unless there's actually some output. This is useful is COGITO_AUTO_COLOR is set. cg-log also gets: - Vast speedup. It uses git-rev-list and git-diff-tree to do most of the heavy lifting. - A new default "-f" format, that allows deletions, renames etc. to be shown (the old format is still available as -F). Deletions and new files are color-coded. - Diff output. cg-log -p shows diff output between commits. Colorized as in cg-diff. - New, more compact summary, that's readable on 80-column terminals. By default, sha1's are hidden, and the date is more compact (and readable). It can also be combined with the other options: for example "cg-log -sf" gives a nice overview of commits and the files they touch. - Slightly new behaviour, thanks to use of git-diff-tree: when you use any of the options that shows differences between revisions, or that gives a subset of revisions, merge commits are hidden by default. They are visible if the "-a/--all" option is given. - The default log format is also shorter. The full version is available with "-v". An even shorter format is available with "-q". - Selection of ranges by date or maximum number of commits to show.