On Tue, Feb 21, 2017 at 12:40:11PM -0800, Linus Torvalds wrote: > In fact, I played around with some formats, and the one I lines the > most was actually one that split the line for decorations, but that > one was admittedly pretty funky. It gives output like > > b9df16a4c (HEAD -> master) > pathspec: don't error out on all-exclusionary pathspec patterns > 91a491f05 pathspec magic: add '^' as alias for '!' > c8e05fd6d ls-remote: add "--diff" option to show only refs that differ > 20769079d (tag: v2.12.0-rc2, origin/master, origin/HEAD) > Git 2.12-rc2 > 076c05393 Hopefully the final batch of mini-topics before the final > c5b22b819 Merge branch 'jk/tempfile-ferror-fclose-confusion' > 62fef5c56 Merge branch 'dp/submodule-doc-markup-fix' > 1f73ff080 Merge branch 'jk/reset-to-break-a-commit-doc-updated' > bf5f11918 Merge branch 'jk/reset-to-break-a-commit-doc' > e048a257b Merge branch 'js/mingw-isatty' > > (which looks better with colorization than it looks in the email). > > But I'm not even going to send out that patch, because it was such an > atrocious hack to line things up. I was going to suggest a custom format string that does the same, but what we have is not _quite_ flexible enough. You can use "%+d" to insert a newline only when "%d" is not empty. But it always inserts _before_ the decoration, not after. Likewise, you cannot say "if it's not empty, then insert %d and a leading tab". The for-each-ref formatting code has %(if), but it's not unified with the commit-format ones. So the best I could come up with is: git config pretty.twoline '%C(auto)%h %s%C(auto)%+d' git log --format=twoline which looks like: 80ba04ed9 Merge branch 'svn-escape-backslash' of git://bogomips.org/git-svn (origin/master, origin/HEAD) 20769079d Git 2.12-rc2 (tag: v2.12.0-rc2) 076c05393 Hopefully the final batch of mini-topics before the final c5b22b819 Merge branch 'jk/tempfile-ferror-fclose-confusion' 62fef5c56 Merge branch 'dp/submodule-doc-markup-fix' 1f73ff080 Merge branch 'jk/reset-to-break-a-commit-doc-updated' -Peff