Nanako Shiraishi <nanako3@xxxxxxxxxxx> writes: > Quoting Junio C Hamano <gitster@xxxxxxxxx>: > >> Correct. I did not run that new test, let alone existing ones ;-) > > I applied your patch and run the test suite, including the new one, and they passed. Thanks. > I tried to write a new option I said that I wanted in my previous message. Here is a patch. > > --->8--- > Subject: [PATCH] git-am: Add --ignore-date option Good. Leaving "Subject: " in saves me typing, because I do not have to insert it manually when editing the submitted patch in my MUA to chop off everything before the scissors. > This new option makes the command ignore the date header field recorded in > the format-patch output. The commits will have the timestamp when they > are created instead. > > You can work a lot in one day to accumulate many changes, but apply and > push to the public repository only some of them at the end of the first > day. Then next day you can spend all your working hours reading comics or > chatting with your coworkers, and apply your remaining patches from the > previous day using this option to pretend that you have been working at > the end of the day. LOL. A slacker option is a tough sell to a serious management, though. I think it would work equally well if you somehow manage to pass this through "git-rebase", but this won't work with "git-rebase --interactive". > @@ -379,7 +383,13 @@ do > > GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' "$dotest/info")" > GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' "$dotest/info")" > - GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' "$dotest/info")" > + case "$ignore_date" in > + t) > + GIT_AUTHOR_DATE="$(date -R)" > + ;; > + '') > + GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' "$dotest/info")" > + esac Please align case arm labels with case/esac; iow, do not indent t) and '') by four spaces, when you write your next case/esac statement. "date -R" is a GNU extension; avoid it (I'll show you how at the end). > diff --git a/t/t4150-am.sh b/t/t4150-am.sh > index 8d3fb00..5ecf456 100755 > --- a/t/t4150-am.sh > +++ b/t/t4150-am.sh > @@ -277,4 +277,13 @@ test_expect_success 'am without --committer-date-is-author-date' ' > test "$at" != "$ct" > ' > > +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" > +' This is a convoluted logic. The committer and author dates are set to -0700 timezone by test_tick, while TZ is set to UTC (+0000) by test-lib.sh, and you are taking advantage of them to see which one is being used. But I do not think of a better way to do this offhand, so I'll let it pass. Regarding the "date -R" thing, I think we can take advantage of the fact that an empty GIT_AUTHOR_DATE (and GIT_COMMITTER_DATE) means "do not use this environment variable, but use the current date instead". Something like this patch on top of yours, whose first hunk reverts your change to use "date -R", and sets GIT_AUTHOR_DATE to empty when --ignore-date is asked for. No, I didn't test it. diff --git i/git-am.sh w/git-am.sh index eb88d90..f935178 100755 --- i/git-am.sh +++ w/git-am.sh @@ -383,13 +383,7 @@ do GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' "$dotest/info")" GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' "$dotest/info")" - case "$ignore_date" in - t) - GIT_AUTHOR_DATE="$(date -R)" - ;; - '') - GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' "$dotest/info")" - esac + GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' "$dotest/info")" if test -z "$GIT_AUTHOR_EMAIL" then @@ -536,6 +530,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" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html