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 -k' 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

