blob: 8f5912c9a0f91db9228160941ded8c8576d1e456 [file] [log] [blame]
'\" t
.\" Title: git-mailinfo
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 2024-04-24
.\" Manual: Git Manual
.\" Source: Git 2.45.0.rc1.1.g9f32d8da7a
.\" Language: English
.\"
.TH "GIT\-MAILINFO" "1" "2024\-04\-24" "Git 2\&.45\&.0\&.rc1\&.1\&.g9f" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-mailinfo \- Extracts patch and authorship from a single e\-mail message
.SH "SYNOPSIS"
.sp
.nf
\fIgit mailinfo\fR [\-k|\-b] [\-u | \-\-encoding=<encoding> | \-n]
[\-\-[no\-]scissors] [\-\-quoted\-cr=<action>]
<msg> <patch>
.fi
.sp
.SH "DESCRIPTION"
.sp
Reads a single e\-mail message from the standard input, and writes the commit log message in <msg> file, and the patches in <patch> file\&. The author name, e\-mail and e\-mail subject are written out to the standard output to be used by \fIgit am\fR to create a commit\&. It is usually not necessary to use this command directly\&. See \fBgit-am\fR(1) instead\&.
.SH "OPTIONS"
.PP
\-k
.RS 4
Usually the program removes email cruft from the Subject: header line to extract the title line for the commit log message\&. This option prevents this munging, and is most useful when used to read back
\fIgit format\-patch \-k\fR
output\&.
.sp
Specifically, the following are removed until none of them remain:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Leading and trailing whitespace\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Leading
\fBRe:\fR,
\fBre:\fR, and
\fB:\fR\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Leading bracketed strings (between
\fB[\fR
and
\fB]\fR, usually
\fB[PATCH]\fR)\&.
.RE
.sp
Finally, runs of whitespace are normalized to a single ASCII space character\&.
.RE
.PP
\-b
.RS 4
When \-k is not in effect, all leading strings bracketed with
\fI[\fR
and
\fI]\fR
pairs are stripped\&. This option limits the stripping to only the pairs whose bracketed string contains the word "PATCH"\&.
.RE
.PP
\-u
.RS 4
The commit log message, author name and author email are taken from the e\-mail, and after minimally decoding MIME transfer encoding, re\-coded in the charset specified by
\fBi18n\&.commitEncoding\fR
(defaulting to UTF\-8) by transliterating them\&. This used to be optional but now it is the default\&.
.sp
Note that the patch is always used as\-is without charset conversion, even with this flag\&.
.RE
.PP
\-\-encoding=<encoding>
.RS 4
Similar to \-u\&. But when re\-coding, the charset specified here is used instead of the one specified by
\fBi18n\&.commitEncoding\fR
or UTF\-8\&.
.RE
.PP
\-n
.RS 4
Disable all charset re\-coding of the metadata\&.
.RE
.PP
\-m, \-\-message\-id
.RS 4
Copy the Message\-ID header at the end of the commit message\&. This is useful in order to associate commits with mailing list discussions\&.
.RE
.PP
\-\-scissors
.RS 4
Remove everything in body before a scissors line (e\&.g\&. "\-\- >8 \-\-")\&. The line represents scissors and perforation marks, and is used to request the reader to cut the message at that line\&. If that line appears in the body of the message before the patch, everything before it (including the scissors line itself) is ignored when this option is used\&.
.sp
This is useful if you want to begin your message in a discussion thread with comments and suggestions on the message you are responding to, and to conclude it with a patch submission, separating the discussion and the beginning of the proposed commit log message with a scissors line\&.
.sp
This can be enabled by default with the configuration option mailinfo\&.scissors\&.
.RE
.PP
\-\-no\-scissors
.RS 4
Ignore scissors lines\&. Useful for overriding mailinfo\&.scissors settings\&.
.RE
.PP
\-\-quoted\-cr=<action>
.RS 4
Action when processes email messages sent with base64 or quoted\-printable encoding, and the decoded lines end with a CRLF instead of a simple LF\&.
.sp
The valid actions are:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBnowarn\fR: Git will do nothing when such a CRLF is found\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBwarn\fR: Git will issue a warning for each message if such a CRLF is found\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBstrip\fR: Git will convert those CRLF to LF\&.
.RE
.sp
The default action could be set by configuration option
\fBmailinfo\&.quotedCR\fR\&. If no such configuration option has been set,
\fBwarn\fR
will be used\&.
.RE
.PP
<msg>
.RS 4
The commit log message extracted from e\-mail, usually except the title line which comes from e\-mail Subject\&.
.RE
.PP
<patch>
.RS 4
The patch extracted from e\-mail\&.
.RE
.SH "CONFIGURATION"
.sp
Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
.PP
mailinfo\&.scissors
.RS 4
If true, makes
\fBgit-mailinfo\fR(1)
(and therefore
\fBgit-am\fR(1)) act by default as if the \-\-scissors option was provided on the command\-line\&. When active, this feature removes everything from the message body before a scissors line (i\&.e\&. consisting mainly of ">8", "8<" and "\-")\&.
.RE
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite