git-send-email-script(1)
=======================
v0.1, July 2005

NAME
----
git-send-email-script - Send a collection of patches as emails


SYNOPSIS
--------
'git-send-email-script' [options] <file|directory> [... file|directory]



DESCRIPTION
-----------
Takes the patches given on the command line and emails them out.

The header of the email is configurable by command line options.  If not
specified on the command line, the user will be prompted with a ReadLine
enabled interface to provide the necessary information.

The options available are:

  --to
	Specify the primary recipient of the emails generated.
	Generally, this will be the upstream maintainer of the
	project involved.

   --from
	Specify the sender of the emails.  This will default to
	the value GIT_COMMITTER_IDENT, as returned by "git-var -l".
	The user will still be prompted to confirm this entry.

   --subject
   	Specify the initial subject of the email thread.

   --in-reply-to
	Specify the contents of the first In-Reply-To header.
	Subsequent emails will refer to the previous email 
	instead of this.
	When overriding on the command line, it may be necessary
	to set this to a space.  For example
		--in-reply-to=" "

   --chain-reply-to, --no-chain-reply-to
	If this is set, each email will be sent as a reply to the previous
	email sent.  If disabled with "--no-chain-reply-to", all emails after
	the first will be sent as replies to the first email sent.  When using
	this, it is recommended that the first file given be an overview of the
	entire patch series.
	Default is --chain-reply-to

   --smtp-server
	If set, specifies the outgoing SMTP server to use.  Defaults to
	localhost.


Author
------
Written by Ryan Anderson <ryan@michonline.com>

git-send-email-script is originally based upon
send_lots_of_email.pl by Greg Kroah-Hartman.

Documentation
--------------
Documentation by Ryan Anderson

GIT
---
Part of the link:git.html[git] suite

