diff options
-rw-r--r-- | Documentation/git-am.txt | 17 | ||||
-rwxr-xr-x | git-am.sh | 8 | ||||
-rwxr-xr-x | t/t4150-am.sh | 13 |
3 files changed, 37 insertions, 1 deletions
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index efd311b1ce..ff307eb270 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -10,7 +10,8 @@ SYNOPSIS -------- [verse] 'git am' [--signoff] [--keep] [--utf8 | --no-utf8] - [--3way] [--interactive] + [--3way] [--interactive] [--committer-date-is-author-date] + [--ignore-date] [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>] [--reject] [<mbox> | <Maildir>...] @@ -73,6 +74,20 @@ default. You could use `--no-utf8` to override this. --interactive:: Run interactively. +--committer-date-is-author-date:: + By default the command records the date from the e-mail + message as the commit author date, and uses the time of + commit creation as the committer date. This allows the + user to lie about the committer date by using the same + timestamp as the author date. + +--ignore-date:: + By default the command records the date from the e-mail + message as the commit author date, and uses the time of + commit creation as the committer date. This allows the + user to lie about author timestamp by using the same + timestamp as the committer date. + --skip:: Skip the current patch. This is only meaningful when restarting an aborted patch. @@ -25,6 +25,7 @@ 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 +ignore-date use current timestamp for author date rebasing (internal use for git-rebase)" . git-sh-setup @@ -136,6 +137,7 @@ sign= utf8=t keep= skip= interactive= resolved= rebasing= abort= resolvemsg= resume= git_apply_opt= committer_date_is_author_date= +ignore_date= while test $# != 0 do @@ -175,6 +177,8 @@ do git_apply_opt="$git_apply_opt $1" ;; --committer-date-is-author-date) committer_date_is_author_date=t ;; + --ignore-date) + ignore_date=t ;; --) shift; break ;; *) @@ -529,6 +533,10 @@ do tree=$(git write-tree) && parent=$(git rev-parse --verify HEAD) && commit=$( + if test -n "$ignore_date" + then + GIT_AUTHOR_DATE= + fi if test -n "$committer_date_is_author_date" then GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" diff --git a/t/t4150-am.sh b/t/t4150-am.sh index 8d3fb00cd9..5e65afa0c1 100755 --- a/t/t4150-am.sh +++ b/t/t4150-am.sh @@ -277,4 +277,17 @@ test_expect_success 'am without --committer-date-is-author-date' ' test "$at" != "$ct" ' +# This checks for +0000 because TZ is set to UTC and that should +# show up when the current time is used. The date in message is set +# by test_tick that uses -0700 timezone; if this feature does not +# work, we will see that instead of +0000. +test_expect_success 'am --ignore-date' ' + git checkout first && + test_tick && + git am --ignore-date patch1 && + git cat-file commit HEAD | sed -e "/^$/q" >head1 && + at=$(sed -ne "/^author /s/.*> //p" head1) && + echo "$at" | grep "+0000" +' + test_done |