+orig_branch=$(git branch --show-current)
+
+if [ x"${orig_branch}" = x"" ]; then
+ echo "Error: unable to determine current branch"
+ exit 1
+fi
+
+if git branch | grep -q ${patches_branch}; then
+ git branch -D ${patches_branch} 1>/dev/null
+fi
+
+if [ "${debug}" = "1" ]; then
+ echo "start commit: ${COMMIT_START_SHA1}"
+ echo "end commit: ${COMMIT_END_SHA1}"
+fi
+
+# Create new branch from base_branch, and apply all our patches onto it:
+git checkout -b ${patches_branch} ${base_branch}
+git branch --set-upstream-to ${base_branch}
+git cherry-pick ${COMMIT_START_SHA1}..${COMMIT_END_SHA1}
+
+GIT_FORMAT_PATCH_OPTS="${GIT_FORMAT_PATCH_OPTS} --base=${base_commit}"
+
+if [ x"${cover}" = x"yes" ]; then
+ GIT_FORMAT_PATCH_OPTS="${GIT_FORMAT_PATCH_OPTS} --cover-letter"
+fi
+
+series_prefix=""
+if [ x"${series}" != x"" -a x"${series}" != x"1" ]; then
+ series_prefix="v${series}-"
+ GIT_FORMAT_PATCH_OPTS="${GIT_FORMAT_PATCH_OPTS} -v ${series}"
+fi
+
+if [ x"${resend}" = x"yes" ]; then
+ GIT_FORMAT_PATCH_SUBJECT="RESEND ${GIT_FORMAT_PATCH_SUBJECT}"
+fi
+
+git format-patch --subject-prefix="${GIT_FORMAT_PATCH_SUBJECT}" \
+ ${GIT_FORMAT_PATCH_OPTS} --output-directory=${srcdir} ${base_branch}
+
+if [ x"${cover}" = x"yes" ]; then
+ # Replace subject line in cover letter:
+ sed -i -e "s@\*\*\* SUB.*@${subject}@" ${srcdir}/${series_prefix}0000-cover-letter.patch
+
+ # Replace blurb line in cover letter:
+ sed -i -e "/.*BLURB.*/{r /tmp/cover-letter.txt" -e 'd}' ${srcdir}/${series_prefix}0000-cover-letter.patch
+
+ collect_email_addresses
+fi
+
+add_cc_list_addresses