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