Re: [PATCH 3/3] Add "%w" to pretty formats, which rewraps the commit message
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 23, 2009, 23:19 UTC
- Message-ID
- <7v63b9gsg1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20090923210055.GA25197@dualtron.vpn.rwth-aachen.de>
Johannes Gilger <heipei@hackvalue.de> writes:
Show 6 quoted lines
> ... 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.