doc: group pretty-format.txt placeholders descriptions

The placeholders can be grouped into three kinds: * literals * affecting formatting of later placeholders * expanding to information in commit Also change the list to a definition list (using '::') Signed-off-by: Anders Waldenborg <anders@0x63.nu> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Anders Waldenborg committed Dec 8, 2018 at 17:36 UTC 42617752d4b22d616e276528ba4d155e6fff1835
1 file changed +125 -110
Documentation/pretty-formats.txt
+125 -110
@@ -102,118 +102,133 @@ The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<
102 +
103 The placeholders are:
104
105 -- '%H': commit hash
106 -- '%h': abbreviated commit hash
107 -- '%T': tree hash
108 -- '%t': abbreviated tree hash
109 -- '%P': parent hashes
110 -- '%p': abbreviated parent hashes
111 -- '%an': author name
112 -- '%aN': author name (respecting .mailmap, see linkgit:git-shortlog[1]
113 - or linkgit:git-blame[1])
114 -- '%ae': author email
115 -- '%aE': author email (respecting .mailmap, see
116 - linkgit:git-shortlog[1] or linkgit:git-blame[1])
117 -- '%ad': author date (format respects --date= option)
118 -- '%aD': author date, RFC2822 style
119 -- '%ar': author date, relative
120 -- '%at': author date, UNIX timestamp
121 -- '%ai': author date, ISO 8601-like format
122 -- '%aI': author date, strict ISO 8601 format
123 -- '%cn': committer name
124 -- '%cN': committer name (respecting .mailmap, see
125 - linkgit:git-shortlog[1] or linkgit:git-blame[1])
126 -- '%ce': committer email
127 -- '%cE': committer email (respecting .mailmap, see
128 - linkgit:git-shortlog[1] or linkgit:git-blame[1])
129 -- '%cd': committer date (format respects --date= option)
130 -- '%cD': committer date, RFC2822 style
131 -- '%cr': committer date, relative
132 -- '%ct': committer date, UNIX timestamp
133 -- '%ci': committer date, ISO 8601-like format
134 -- '%cI': committer date, strict ISO 8601 format
135 -- '%d': ref names, like the --decorate option of linkgit:git-log[1]
136 -- '%D': ref names without the " (", ")" wrapping.
137 -- '%e': encoding
138 -- '%s': subject
139 -- '%f': sanitized subject line, suitable for a filename
140 -- '%b': body
141 -- '%B': raw body (unwrapped subject and body)
105 +- Placeholders that expand to a single literal character:
106 +'%n':: newline
107 +'%%':: a raw '%'
108 +'%x00':: print a byte from a hex code
109 +
110 +- Placeholders that affect formatting of later placeholders:
111 +'%Cred':: switch color to red
112 +'%Cgreen':: switch color to green
113 +'%Cblue':: switch color to blue
114 +'%Creset':: reset color
115 +'%C(...)':: color specification, as described under Values in the
116 + "CONFIGURATION FILE" section of linkgit:git-config[1]. By
117 + default, colors are shown only when enabled for log output
118 + (by `color.diff`, `color.ui`, or `--color`, and respecting
119 + the `auto` settings of the former if we are going to a
120 + terminal). `%C(auto,...)` is accepted as a historical
121 + synonym for the default (e.g., `%C(auto,red)`). Specifying
122 + `%C(always,...) will show the colors even when color is
123 + not otherwise enabled (though consider just using
124 + `--color=always` to enable color for the whole output,
125 + including this format and anything else git might color).
126 + `auto` alone (i.e. `%C(auto)`) will turn on auto coloring
127 + on the next placeholders until the color is switched
128 + again.
129 +'%m':: left (`<`), right (`>`) or boundary (`-`) mark
130 +'%w([<w>[,<i1>[,<i2>]]])':: switch line wrapping, like the -w option of
131 + linkgit:git-shortlog[1].
132 +'%<(<N>[,trunc|ltrunc|mtrunc])':: make the next placeholder take at
133 + least N columns, padding spaces on
134 + the right if necessary. Optionally
135 + truncate at the beginning (ltrunc),
136 + the middle (mtrunc) or the end
137 + (trunc) if the output is longer than
138 + N columns. Note that truncating
139 + only works correctly with N >= 2.
140 +'%<|(<N>)':: make the next placeholder take at least until Nth
141 + columns, padding spaces on the right if necessary
142 +'%>(<N>)', '%>|(<N>)':: similar to '%<(<N>)', '%<|(<N>)' respectively,
143 + but padding spaces on the left
144 +'%>>(<N>)', '%>>|(<N>)':: similar to '%>(<N>)', '%>|(<N>)'
145 + respectively, except that if the next
146 + placeholder takes more spaces than given and
147 + there are spaces on its left, use those
148 + spaces
149 +'%><(<N>)', '%><|(<N>)':: similar to '%<(<N>)', '%<|(<N>)'
150 + respectively, but padding both sides
151 + (i.e. the text is centered)
152 +
153 +- Placeholders that expand to information extracted from the commit:
154 +'%H':: commit hash
155 +'%h':: abbreviated commit hash
156 +'%T':: tree hash
157 +'%t':: abbreviated tree hash
158 +'%P':: parent hashes
159 +'%p':: abbreviated parent hashes
160 +'%an':: author name
161 +'%aN':: author name (respecting .mailmap, see linkgit:git-shortlog[1]
162 + or linkgit:git-blame[1])
163 +'%ae':: author email
164 +'%aE':: author email (respecting .mailmap, see linkgit:git-shortlog[1]
165 + or linkgit:git-blame[1])
166 +'%ad':: author date (format respects --date= option)
167 +'%aD':: author date, RFC2822 style
168 +'%ar':: author date, relative
169 +'%at':: author date, UNIX timestamp
170 +'%ai':: author date, ISO 8601-like format
171 +'%aI':: author date, strict ISO 8601 format
172 +'%cn':: committer name
173 +'%cN':: committer name (respecting .mailmap, see
174 + linkgit:git-shortlog[1] or linkgit:git-blame[1])
175 +'%ce':: committer email
176 +'%cE':: committer email (respecting .mailmap, see
177 + linkgit:git-shortlog[1] or linkgit:git-blame[1])
178 +'%cd':: committer date (format respects --date= option)
179 +'%cD':: committer date, RFC2822 style
180 +'%cr':: committer date, relative
181 +'%ct':: committer date, UNIX timestamp
182 +'%ci':: committer date, ISO 8601-like format
183 +'%cI':: committer date, strict ISO 8601 format
184 +'%d':: ref names, like the --decorate option of linkgit:git-log[1]
185 +'%D':: ref names without the " (", ")" wrapping.
186 +'%e':: encoding
187 +'%s':: subject
188 +'%f':: sanitized subject line, suitable for a filename
189 +'%b':: body
190 +'%B':: raw body (unwrapped subject and body)
191 ifndef::git-rev-list[]
143 -- '%N': commit notes
192 +'%N':: commit notes
193 endif::git-rev-list[]
145 -- '%GG': raw verification message from GPG for a signed commit
146 -- '%G?': show "G" for a good (valid) signature,
147 - "B" for a bad signature,
148 - "U" for a good signature with unknown validity,
149 - "X" for a good signature that has expired,
150 - "Y" for a good signature made by an expired key,
151 - "R" for a good signature made by a revoked key,
152 - "E" if the signature cannot be checked (e.g. missing key)
153 - and "N" for no signature
154 -- '%GS': show the name of the signer for a signed commit
155 -- '%GK': show the key used to sign a signed commit
156 -- '%GF': show the fingerprint of the key used to sign a signed commit
157 -- '%GP': show the fingerprint of the primary key whose subkey was used
158 - to sign a signed commit
159 -- '%gD': reflog selector, e.g., `refs/stash@{1}` or
160 - `refs/stash@{2 minutes ago`}; the format follows the rules described
161 - for the `-g` option. The portion before the `@` is the refname as
162 - given on the command line (so `git log -g refs/heads/master` would
163 - yield `refs/heads/master@{0}`).
164 -- '%gd': shortened reflog selector; same as `%gD`, but the refname
165 - portion is shortened for human readability (so `refs/heads/master`
166 - becomes just `master`).
167 -- '%gn': reflog identity name
168 -- '%gN': reflog identity name (respecting .mailmap, see
169 - linkgit:git-shortlog[1] or linkgit:git-blame[1])
170 -- '%ge': reflog identity email
171 -- '%gE': reflog identity email (respecting .mailmap, see
172 - linkgit:git-shortlog[1] or linkgit:git-blame[1])
173 -- '%gs': reflog subject
174 -- '%Cred': switch color to red
175 -- '%Cgreen': switch color to green
176 -- '%Cblue': switch color to blue
177 -- '%Creset': reset color
178 -- '%C(...)': color specification, as described under Values in the
179 - "CONFIGURATION FILE" section of linkgit:git-config[1].
180 - By default, colors are shown only when enabled for log output (by
181 - `color.diff`, `color.ui`, or `--color`, and respecting the `auto`
182 - settings of the former if we are going to a terminal). `%C(auto,...)`
183 - is accepted as a historical synonym for the default (e.g.,
184 - `%C(auto,red)`). Specifying `%C(always,...) will show the colors
185 - even when color is not otherwise enabled (though consider
186 - just using `--color=always` to enable color for the whole output,
187 - including this format and anything else git might color). `auto`
188 - alone (i.e. `%C(auto)`) will turn on auto coloring on the next
189 - placeholders until the color is switched again.
190 -- '%m': left (`<`), right (`>`) or boundary (`-`) mark
191 -- '%n': newline
192 -- '%%': a raw '%'
193 -- '%x00': print a byte from a hex code
194 -- '%w([<w>[,<i1>[,<i2>]]])': switch line wrapping, like the -w option of
195 - linkgit:git-shortlog[1].
196 -- '%<(<N>[,trunc|ltrunc|mtrunc])': make the next placeholder take at
197 - least N columns, padding spaces on the right if necessary.
198 - Optionally truncate at the beginning (ltrunc), the middle (mtrunc)
199 - or the end (trunc) if the output is longer than N columns.
200 - Note that truncating only works correctly with N >= 2.
201 -- '%<|(<N>)': make the next placeholder take at least until Nth
202 - columns, padding spaces on the right if necessary
203 -- '%>(<N>)', '%>|(<N>)': similar to '%<(<N>)', '%<|(<N>)'
204 - respectively, but padding spaces on the left
205 -- '%>>(<N>)', '%>>|(<N>)': similar to '%>(<N>)', '%>|(<N>)'
206 - respectively, except that if the next placeholder takes more spaces
207 - than given and there are spaces on its left, use those spaces
208 -- '%><(<N>)', '%><|(<N>)': similar to '%<(<N>)', '%<|(<N>)'
209 - respectively, but padding both sides (i.e. the text is centered)
210 -- %(trailers[:options]): display the trailers of the body as interpreted
211 - by linkgit:git-interpret-trailers[1]. The `trailers` string may be
212 - followed by a colon and zero or more comma-separated options. If the
213 - `only` option is given, omit non-trailer lines from the trailer block.
214 - If the `unfold` option is given, behave as if interpret-trailer's
215 - `--unfold` option was given. E.g., `%(trailers:only,unfold)` to do
216 - both.
194 +'%GG':: raw verification message from GPG for a signed commit
195 +'%G?':: show "G" for a good (valid) signature,
196 + "B" for a bad signature,
197 + "U" for a good signature with unknown validity,
198 + "X" for a good signature that has expired,
199 + "Y" for a good signature made by an expired key,
200 + "R" for a good signature made by a revoked key,
201 + "E" if the signature cannot be checked (e.g. missing key)
202 + and "N" for no signature
203 +'%GS':: show the name of the signer for a signed commit
204 +'%GK':: show the key used to sign a signed commit
205 +'%GF':: show the fingerprint of the key used to sign a signed commit
206 +'%GP':: show the fingerprint of the primary key whose subkey was used
207 + to sign a signed commit
208 +'%gD':: reflog selector, e.g., `refs/stash@{1}` or `refs/stash@{2
209 + minutes ago`}; the format follows the rules described for the
210 + `-g` option. The portion before the `@` is the refname as
211 + given on the command line (so `git log -g refs/heads/master`
212 + would yield `refs/heads/master@{0}`).
213 +'%gd':: shortened reflog selector; same as `%gD`, but the refname
214 + portion is shortened for human readability (so
215 + `refs/heads/master` becomes just `master`).
216 +'%gn':: reflog identity name
217 +'%gN':: reflog identity name (respecting .mailmap, see
218 + linkgit:git-shortlog[1] or linkgit:git-blame[1])
219 +'%ge':: reflog identity email
220 +'%gE':: reflog identity email (respecting .mailmap, see
221 + linkgit:git-shortlog[1] or linkgit:git-blame[1])
222 +'%gs':: reflog subject
223 +'%(trailers[:options])':: display the trailers of the body as
224 + interpreted by
225 + linkgit:git-interpret-trailers[1]. The
226 + `trailers` string may be followed by a colon
227 + and zero or more comma-separated options:
228 +** 'only': omit non-trailer lines from the trailer block.
229 +** 'unfold': make it behave as if interpret-trailer's `--unfold`
230 + option was given. E.g., `%(trailers:only,unfold)` unfolds and
231 + shows all trailer lines.
232
233 NOTE: Some placeholders may depend on other options given to the
234 revision traversal engine. For example, the `%g*` reflog options will