]> git.ipfire.org Git - thirdparty/git.git/commitdiff
rebase: add --reset-author-date
authorRohit Ashiwal <rohit.ashiwal265@gmail.com>
Mon, 17 Aug 2020 17:40:04 +0000 (18:40 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Aug 2020 22:22:56 +0000 (15:22 -0700)
The previous commit introduced --ignore-date flag to rebase -i, but the
name is rather vague as it does not say whether the author date or the
committer date is ignored. Add an alias to convey the precise purpose.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Rohit Ashiwal <rohit.ashiwal265@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-rebase.txt
builtin/rebase.c
t/t3436-rebase-more-options.sh

index 79cecd292927ee11f32bb6a4a2b0cdc25d94ae0c..1ee3bb4facb09edd21d1cb4ce61a1f9d2b9e22ce 100644 (file)
@@ -450,6 +450,7 @@ See also INCOMPATIBLE OPTIONS below.
        date. This option implies `--force-rebase`.
 
 --ignore-date::
+--reset-author-date::
        Instead of using the author date of the original commit, use
        the current time as the author date of the rebased commit.  This
        option implies `--force-rebase`.
index 583ac96fc7357a22d24fb47b2552749f27b6ac5b..b126fbe940bc6b3af87282be67e16699fbfa2667 100644 (file)
@@ -1505,8 +1505,10 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
                OPT_BOOL(0, "committer-date-is-author-date",
                         &options.committer_date_is_author_date,
                         N_("make committer date match author date")),
-               OPT_BOOL(0, "ignore-date", &options.ignore_date,
+               OPT_BOOL(0, "reset-author-date", &options.ignore_date,
                         N_("ignore author date and use current date")),
+               OPT_HIDDEN_BOOL(0, "ignore-date", &options.ignore_date,
+                               N_("synonym of --reset-author-date")),
                OPT_PASSTHRU_ARGV('C', NULL, &options.git_am_opts, N_("n"),
                                  N_("passed to 'git apply'"), 0),
                OPT_BOOL(0, "ignore-whitespace", &ignore_whitespace,
index 8d73639954a564173854b8107aab3091ef3c95ed..627fa163a2dd2062d9a6cf0a6be965267082bcb4 100755 (executable)
@@ -117,20 +117,20 @@ test_atime_is_ignored () {
        ! grep -v +0000 authortime
 }
 
-test_expect_success '--ignore-date works with apply backend' '
+test_expect_success '--reset-author-date works with apply backend' '
        git commit --amend --date="$GIT_AUTHOR_DATE" &&
-       git rebase --apply --ignore-date HEAD^ &&
+       git rebase --apply --reset-author-date HEAD^ &&
        test_atime_is_ignored -1
 '
 
-test_expect_success '--ignore-date works with merge backend' '
+test_expect_success '--reset-author-date works with merge backend' '
        git commit --amend --date="$GIT_AUTHOR_DATE" &&
-       git rebase --ignore-date -m HEAD^ &&
+       git rebase --reset-author-date -m HEAD^ &&
        test_atime_is_ignored -1
 '
 
-test_expect_success '--ignore-date works after conflict resolution' '
-       test_must_fail git rebase --ignore-date -m \
+test_expect_success '--reset-author-date works after conflict resolution' '
+       test_must_fail git rebase --reset-author-date -m \
                --onto commit2^^ commit2^ commit2 &&
        echo resolved >foo &&
        git add foo &&
@@ -138,16 +138,16 @@ test_expect_success '--ignore-date works after conflict resolution' '
        test_atime_is_ignored -1
 '
 
-test_expect_success '--ignore-date works with rebase -r' '
+test_expect_success '--reset-author-date works with rebase -r' '
        git checkout side &&
        git merge --no-ff commit3 &&
-       git rebase -r --root --ignore-date &&
+       git rebase -r --root --reset-author-date &&
        test_atime_is_ignored
 '
 
-test_expect_success '--ignore-date with --committer-date-is-author-date works' '
+test_expect_success '--reset-author-date with --committer-date-is-author-date works' '
        test_must_fail git rebase -m --committer-date-is-author-date \
-               --ignore-date --onto commit2^^ commit2^ commit3 &&
+               --reset-author-date --onto commit2^^ commit2^ commit3 &&
        git checkout --theirs foo &&
        git add foo &&
        git rebase --continue &&
@@ -155,15 +155,23 @@ test_expect_success '--ignore-date with --committer-date-is-author-date works' '
        test_atime_is_ignored -2
 '
 
-test_expect_success '--ignore-date --committer-date-is-author-date works when forking merge' '
+test_expect_success '--reset-author-date --committer-date-is-author-date works when forking merge' '
        GIT_SEQUENCE_EDITOR="echo \"merge -C $(git rev-parse HEAD) commit3\">" \
                PATH="./test-bin:$PATH" git rebase -i --strategy=test \
-                               --ignore-date --committer-date-is-author-date \
-                               side side &&
+                               --reset-author-date \
+                               --committer-date-is-author-date side side &&
        test_ctime_is_atime -1 &&
        test_atime_is_ignored -1
  '
 
+test_expect_success '--ignore-date is an alias for --reset-author-date' '
+       git commit --amend --date="$GIT_AUTHOR_DATE" &&
+       git rebase --apply --ignore-date HEAD^ &&
+       git commit --allow-empty -m empty --date="$GIT_AUTHOR_DATE" &&
+       git rebase -m --ignore-date HEAD^ &&
+       test_atime_is_ignored -2
+'
+
 # This must be the last test in this file
 test_expect_success '$EDITOR and friends are unchanged' '
        test_editor_unchanged