git-applymbox(1)
================

NAME
----
git-applymbox - Apply a series of patches in a mailbox


SYNOPSIS
--------
'git-applymbox' [-u] [-k] [-q] [-m] ( -c .dotest/<num> | <mbox> ) [ <signoff> ]

DESCRIPTION
-----------
Splits mail messages in a mailbox into commit log message,
authorship information and patches, and applies them to the
current branch.


OPTIONS
-------
-q::
	Apply patches interactively.  The user will be given
	opportunity to edit the log message and the patch before
	attempting to apply it.

-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.

-m::
	Patches are applied with `git-apply` command, and unless
	it cleanly applies without fuzz, the processing fails.
	With this flag, if a tree that the patch applies cleanly
	is found in a repository, the patch is applied to the
	tree and then a 3-way merge between the resulting tree
	and the current tree.

-u::
	Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
	The proposed commit log message taken from the e-mail
	are re-coded into UTF-8 encoding (configuration variable
	`i18n.commitencoding` can be used to specify project's
	preferred encoding if it is not UTF-8).  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.

-n::
	Pass `-n` flag to `git-mailinfo` (see
	gitlink:git-mailinfo[1]).

-c .dotest/<num>::
	When the patch contained in an e-mail does not cleanly
	apply, the command exits with an error message. The
	patch and extracted message are found in .dotest/, and
	you could re-run 'git applymbox' with '-c .dotest/<num>'
	flag to restart the process after inspecting and fixing
	them.

<mbox>::
	The name of the file that contains the e-mail messages
	with patches.  This file should be in the UNIX mailbox
	format.  See 'SubmittingPatches' document to learn about
	the formatting convention for e-mail submission.

<signoff>::
	The name of the file that contains your "Signed-off-by"
	line.  See 'SubmittingPatches' document to learn what
	"Signed-off-by" line means.  You can also just say
	'yes', 'true', 'me', or 'please' to use an automatically
	generated "Signed-off-by" line based on your committer
	identity.


SEE ALSO
--------
gitlink:git-am[1], gitlink:git-applypatch[1].


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

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

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

