Thread (6 messages) flat view 6 messages, 3 authors, 2016-06-15
DORMANTno replies

[PATCH] Many new features for cg-diff and cg-log

From: Dan Holmsand <hidden>
Date: 2016-06-15 22:41:59

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.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help