git-am: add --message-id/--no-message-id
Parse the option and pass it directly to git-mailinfo. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									452dfbed1a
								
							
						
					
					
						commit
						a078f7321b
					
				|  | @ -57,6 +57,17 @@ OPTIONS | |||
| --no-scissors:: | ||||
| 	Ignore scissors lines (see linkgit:git-mailinfo[1]). | ||||
|  | ||||
| -m:: | ||||
| --message-id:: | ||||
| 	Pass the `-m` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]), | ||||
| 	so that the Message-ID header is added to the commit message. | ||||
| 	The `am.messageid` configuration variable can be used to specify | ||||
| 	the default behaviour. | ||||
|  | ||||
| --no-message-id:: | ||||
| 	Do not add the Message-ID header to the commit message. | ||||
| 	`no-message-id` is useful to override `am.messageid`. | ||||
|  | ||||
| -q:: | ||||
| --quiet:: | ||||
| 	Be quiet. Only print error messages. | ||||
|  |  | |||
							
								
								
									
										21
									
								
								git-am.sh
								
								
								
								
							
							
						
						
									
										21
									
								
								git-am.sh
								
								
								
								
							|  | @ -17,6 +17,7 @@ s,signoff       add a Signed-off-by line to the commit message | |||
| u,utf8          recode into utf8 (default) | ||||
| k,keep          pass -k flag to git-mailinfo | ||||
| keep-non-patch  pass -b flag to git-mailinfo | ||||
| m,message-id    pass -m flag to git-mailinfo | ||||
| keep-cr         pass --keep-cr flag to git-mailsplit for mbox format | ||||
| no-keep-cr      do not pass --keep-cr flag to git-mailsplit independent of am.keepcr | ||||
| c,scissors      strip everything before a scissors line | ||||
|  | @ -371,13 +372,18 @@ split_patches () { | |||
| prec=4 | ||||
| dotest="$GIT_DIR/rebase-apply" | ||||
| sign= utf8=t keep= keepcr= skip= interactive= resolved= rebasing= abort= | ||||
| resolvemsg= resume= scissors= no_inbody_headers= | ||||
| messageid= resolvemsg= resume= scissors= no_inbody_headers= | ||||
| git_apply_opt= | ||||
| committer_date_is_author_date= | ||||
| ignore_date= | ||||
| allow_rerere_autoupdate= | ||||
| gpg_sign_opt= | ||||
|  | ||||
| if test "$(git config --bool --get am.messageid)" = true | ||||
| then | ||||
|     messageid=t | ||||
| fi | ||||
|  | ||||
| if test "$(git config --bool --get am.keepcr)" = true | ||||
| then | ||||
|     keepcr=t | ||||
|  | @ -400,6 +406,10 @@ it will be removed. Please do not use it anymore." | |||
| 		utf8=t ;; # this is now default | ||||
| 	--no-utf8) | ||||
| 		utf8= ;; | ||||
| 	-m|--message-id) | ||||
| 		messageid=t ;; | ||||
| 	--no-message-id) | ||||
| 		messageid=f ;; | ||||
| 	-k|--keep) | ||||
| 		keep=t ;; | ||||
| 	--keep-non-patch) | ||||
|  | @ -567,6 +577,7 @@ Use \"git am --abort\" to remove it.")" | |||
| 	echo "$sign" >"$dotest/sign" | ||||
| 	echo "$utf8" >"$dotest/utf8" | ||||
| 	echo "$keep" >"$dotest/keep" | ||||
| 	echo "$messageid" >"$dotest/messageid" | ||||
| 	echo "$scissors" >"$dotest/scissors" | ||||
| 	echo "$no_inbody_headers" >"$dotest/no_inbody_headers" | ||||
| 	echo "$GIT_QUIET" >"$dotest/quiet" | ||||
|  | @ -621,6 +632,12 @@ b) | |||
| *) | ||||
| 	keep= ;; | ||||
| esac | ||||
| case "$(cat "$dotest/messageid")" in | ||||
| t) | ||||
| 	messageid=-m ;; | ||||
| f) | ||||
| 	messageid= ;; | ||||
| esac | ||||
| case "$(cat "$dotest/scissors")" in | ||||
| t) | ||||
| 	scissors=--scissors ;; | ||||
|  | @ -692,7 +709,7 @@ do | |||
| 			get_author_ident_from_commit "$commit" >"$dotest/author-script" | ||||
| 			git diff-tree --root --binary --full-index "$commit" >"$dotest/patch" | ||||
| 		else | ||||
| 			git mailinfo $keep $no_inbody_headers $scissors $utf8 "$dotest/msg" "$dotest/patch" \ | ||||
| 			git mailinfo $keep $no_inbody_headers $messageid $scissors $utf8 "$dotest/msg" "$dotest/patch" \ | ||||
| 				<"$dotest/$msgnum" >"$dotest/info" || | ||||
| 				stop_here $this | ||||
|  | ||||
|  |  | |||
|  | @ -85,6 +85,7 @@ test_expect_success setup ' | |||
|  | ||||
| 	git format-patch --stdout first >patch1 && | ||||
| 	{ | ||||
| 		echo "Message-Id: <1226501681-24923-1-git-send-email-bda@mnsspb.ru>" && | ||||
| 		echo "X-Fake-Field: Line One" && | ||||
| 		echo "X-Fake-Field: Line Two" && | ||||
| 		echo "X-Fake-Field: Line Three" && | ||||
|  | @ -536,4 +537,26 @@ test_expect_success 'am empty-file does not infloop' ' | |||
| 	test_i18ncmp expected actual | ||||
| ' | ||||
|  | ||||
| test_expect_success 'am --message-id really adds the message id' ' | ||||
| 	rm -fr .git/rebase-apply && | ||||
| 	git reset --hard && | ||||
| 	git checkout HEAD^ && | ||||
| 	git am --message-id patch1.eml && | ||||
| 	test_path_is_missing .git/rebase-apply && | ||||
| 	git cat-file commit HEAD | tail -n1 >actual && | ||||
| 	grep Message-Id patch1.eml >expected && | ||||
| 	test_cmp expected actual | ||||
| ' | ||||
|  | ||||
| test_expect_success 'am --message-id -s signs off after the message id' ' | ||||
| 	rm -fr .git/rebase-apply && | ||||
| 	git reset --hard && | ||||
| 	git checkout HEAD^ && | ||||
| 	git am -s --message-id patch1.eml && | ||||
| 	test_path_is_missing .git/rebase-apply && | ||||
| 	git cat-file commit HEAD | tail -n2 | head -n1 >actual && | ||||
| 	grep Message-Id patch1.eml >expected && | ||||
| 	test_cmp expected actual | ||||
| ' | ||||
|  | ||||
| test_done | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Paolo Bonzini
						Paolo Bonzini