]> git.wh0rd.org - home.git/blobdiff - .bin/git-format-request-pull
git-rewrite-authors: silence rewrite warning+delay
[home.git] / .bin / git-format-request-pull
index 9845b00789e81593273a284ffe55f5978da576eb..f03345b7143f331e7c4f569a10fb36b44c72bc7c 100755 (executable)
@@ -6,10 +6,13 @@ usage() {
 }
 
 auto=false
+force=false
+eval set -- `getopt -- efh "$@"`
 while [[ -n $1 ]] ; do
        case $1 in
                -h|--help) usage;;
                -e) auto=true;;
+               -f) force=true;;
                --) shift; break;;
                -*) usage 1;;
                *)  break;
@@ -17,9 +20,14 @@ while [[ -n $1 ]] ; do
        shift
 done
 
-commit=$1
-url=$(git config --get remote.origin.url)
+commit=${1:-mainline/master}
+url=$(git config --get remote.pullrequest.url || git config --get remote.origin.url)
 branch=${2:-master}
+if [[ ${branch} != master ]] ; then
+       subject=" (${branch} branch)"
+else
+       subject=""
+fi
 
 if [[ -z ${commit} ]] || [[ -n $3 ]] ; then
        usage 1
@@ -28,17 +36,21 @@ fi
 name=$(git config --get user.name)
 email=$(git config --get user.email)
 tmp=$(mktemp)
+if ! request=$(PAGER= git request-pull ${commit} ${url} ${branch}) ; then
+       ${force} || exit 1
+       request=$(echo "${request}" | sed "s:..BRANCH.NOT.VERIFIED..:${branch}:")
+fi
 cat << EOF > ${tmp}
 From: ${name} <${email}>
 Date: $(date -R)
-Subject: Pull request ${url##*/}
+Subject: Pull request ${url##*/}${subject}
 
-$(git request-pull ${commit} ${url} ${branch})
+${request}
 EOF
 cat ${tmp}
 
 to=$(git config --get sendemail.pullrequest)
-cc=$(git config --get sendemail.to)
+cc=$(git config --get sendemail.to || git config --get sendemail.pullrequestcc)
 if ${auto} ; then
        git send-email --to "${to}" --cc "${cc}" ${tmp}
 else