git-mailinfo(1)
===============

NAME
----
git-mailinfo - Extracts patch from a single e-mail message


SYNOPSIS
--------
'git-mailinfo' [-k] [-u | --encoding=<encoding>] <msg> <patch>


DESCRIPTION
-----------
Reading 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 git-applypatch
to create a commit.  It is usually not necessary to use this
command directly.


OPTIONS
-------
-k::
	Usually the program 'cleans up' the Subject: header line
	to extract the title line for the commit log message,
	among which (1) remove 'Re:' or 're:', (2) leading
	whitespaces, (3) '[' up to ']', typically '[PATCH]', and
	then prepends "[PATCH] ".  This flag forbids this
	munging, and is most useful when used to read back 'git
	format-patch --mbox' output.

-u::
	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 UTF-8 by transliterating
	them.  This used to be optional but now it is the default.
+
Note that the patch is always used as-is without charset
conversion, even with this flag.

--encoding=<encoding>::
	Similar to -u but if the local convention is different
	from what is specified by i18n.commitencoding, this flag
	can be used to override it.

<msg>::
	The commit log message extracted from e-mail, usually
	except the title line which comes from e-mail Subject.

<patch>::
	The patch extracted from e-mail.


Author
------
Written by Linus Torvalds <torvalds@osdl.org> and
Junio C Hamano <junkio@cox.net>


Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

