From: Junio C Hamano Date: Wed, 23 Sep 2009 23:19:26 GMT Subject: Re: [PATCH 3/3] Add "%w" to pretty formats, which rewraps the commit message Message-ID: <7v63b9gsg1.fsf@alter.siamese.dyndns.org> In-Reply-To: <20090923210055.GA25197@dualtron.vpn.rwth-aachen.de> Johannes Gilger writes: > ... One thing that bothers > me about the %w flag is that is includes subject and body, when we > already have atoms for both of these flags. So having a subject(x,y) and > body(x,y) tag (where x is indent and y is textwidth to be rewrapped) > would be nicer and more in the spirit of the existing format options > imho. I do not particularly like this %w() either, and would prefer to see an equivalent solution using combination of %S(i,j,w) and %B(i,j,w). Your %B(n) can be extended to do the same as Johannes's wrapping variant when given three parameters and you can trivially do the same for %s to produce %S(n) and %S(i,j,w). One issue %w() sidesteps is handing of single liner commit log messages (this is not a new issue your %B(n) introduces). "%s%n%b" will give us the original message only when the log has some contents in addition to the single-line summary. Otherwise we will get an extra blank line. Perhaps we could extend the pretty-printer so that it understands %+x notation, which expands to %n%x when %x expands to a non-empty result, and otherwise it expands to empty, as a generic extension applicable to any format specifier 'x'. If we have such a notation, "%s%+b", would be a reasonable way to say "give us the original commit log message here", and we won't need %w(i,j,w) -- we can instead say %S(i,j,w)%+B(i,j,w), or %s%+B(i,j,w) depending on what you want.