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::
	By default, the commit log message, author name and
	author email are taken from the e-mail without any
	charset conversion, after minimally decoding MIME
	transfer encoding.  This flag causes the resulting
	commit to be encoded in utf-8 by transliterating them.
	Note that the patch is always used as is without charset
	conversion, even with this flag.

-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

