From: Junio C Hamano Date: Fri, 23 Jan 2009 00:14:58 +0000 (-0800) Subject: am: Add --committer-date-is-author-date option X-Git-Tag: v1.6.2-rc0~30^2~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3f01ad665493e09aa816d84a872d9874f33a8c16;p=git.git am: Add --committer-date-is-author-date option This new option tells 'git-am' to use the timestamp recorded in the Email message as both author and committer date. Signed-off-by: しらいしななこ Signed-off-by: Junio C Hamano --- diff --git a/git-am.sh b/git-am.sh index b1c05c9db..e726f1714 100755 --- a/git-am.sh +++ b/git-am.sh @@ -24,6 +24,7 @@ resolvemsg= override error message when patch failure occurs r,resolved to be used after a patch failure skip skip the current patch abort restore the original branch and abort the patching operation. +committer-date-is-author-date lie about committer date rebasing (internal use for git-rebase)" . git-sh-setup @@ -134,6 +135,7 @@ dotest="$GIT_DIR/rebase-apply" sign= utf8=t keep= skip= interactive= resolved= rebasing= abort= resolvemsg= resume= git_apply_opt= +committer_date_is_author_date= while test $# != 0 do @@ -171,6 +173,8 @@ do git_apply_opt="$git_apply_opt $(sq "$1$2")"; shift ;; --reject) git_apply_opt="$git_apply_opt $1" ;; + --committer-date-is-author-date) + committer_date_is_author_date=t ;; --) shift; break ;; *) @@ -524,7 +528,14 @@ do tree=$(git write-tree) && parent=$(git rev-parse --verify HEAD) && - commit=$(git commit-tree $tree -p $parent <"$dotest/final-commit") && + commit=$( + if test -n "$committer_date_is_author_date" + then + GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" + export GIT_COMMITTER_DATE + fi && + git commit-tree $tree -p $parent <"$dotest/final-commit" + ) && git update-ref -m "$GIT_REFLOG_ACTION: $FIRSTLINE" HEAD $commit $parent || stop_here $this diff --git a/t/t4150-am.sh b/t/t4150-am.sh index 796f79526..8d3fb00cd 100755 --- a/t/t4150-am.sh +++ b/t/t4150-am.sh @@ -257,4 +257,24 @@ test_expect_success 'am works from file (absolute path given) in subdirectory' ' test -z "$(git diff second)" ' +test_expect_success 'am --committer-date-is-author-date' ' + git checkout first && + test_tick && + git am --committer-date-is-author-date patch1 && + git cat-file commit HEAD | sed -e "/^$/q" >head1 && + at=$(sed -ne "/^author /s/.*> //p" head1) && + ct=$(sed -ne "/^committer /s/.*> //p" head1) && + test "$at" = "$ct" +' + +test_expect_success 'am without --committer-date-is-author-date' ' + git checkout first && + test_tick && + git am patch1 && + git cat-file commit HEAD | sed -e "/^$/q" >head1 && + at=$(sed -ne "/^author /s/.*> //p" head1) && + ct=$(sed -ne "/^committer /s/.*> //p" head1) && + test "$at" != "$ct" +' + test_done