Merge branch 'js/rebase-stat-unrelated-fix'
authorJunio C Hamano <gitster@pobox.com>
Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)
committerJunio C Hamano <gitster@pobox.com>
Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)
"git rebase --stat" to transplant a piece of history onto a totally
unrelated history were not working before and silently showed wrong
result. With the recent reimplementation in C, it started to instead
die with an error message, as the original logic was not prepared
to cope with this case. This has now been fixed.

* js/rebase-stat-unrelated-fix:
rebase --stat: fix when rebasing to an unrelated history

1  2 
builtin/rebase.c
t/t3406-rebase-message.sh
Simple merge
index db8505eb86aaceba0412d70eac4a285821535522,c2c9950568f27e17d49d166c647dfc8794dd1a35..f64b130cb805bbca8475f3c262693fa0faa2cafe
@@@ -91,30 -91,14 +91,40 @@@ test_expect_success 'error out early up
        test_i18ngrep "Invalid whitespace option" err
  '
  
 +test_expect_success 'GIT_REFLOG_ACTION' '
 +      git checkout start &&
 +      test_commit reflog-onto &&
 +      git checkout -b reflog-topic start &&
 +      test_commit reflog-to-rebase &&
 +
 +      git rebase reflog-onto &&
 +      git log -g --format=%gs -3 >actual &&
 +      cat >expect <<-\EOF &&
 +      rebase finished: returning to refs/heads/reflog-topic
 +      rebase: reflog-to-rebase
 +      rebase: checkout reflog-onto
 +      EOF
 +      test_cmp expect actual &&
 +
 +      git checkout -b reflog-prefix reflog-to-rebase &&
 +      GIT_REFLOG_ACTION=change-the-reflog git rebase reflog-onto &&
 +      git log -g --format=%gs -3 >actual &&
 +      cat >expect <<-\EOF &&
 +      rebase finished: returning to refs/heads/reflog-prefix
 +      change-the-reflog: reflog-to-rebase
 +      change-the-reflog: checkout reflog-onto
 +      EOF
 +      test_cmp expect actual
 +'
 +
+ test_expect_success 'rebase -i onto unrelated history' '
+       git init unrelated &&
+       test_commit -C unrelated 1 &&
+       git -C unrelated remote add -f origin "$PWD" &&
+       git -C unrelated branch --set-upstream-to=origin/master &&
+       git -C unrelated -c core.editor=true rebase -i -v --stat >actual &&
+       test_i18ngrep "Changes to " actual &&
+       test_i18ngrep "5 files changed" actual
+ '
  test_done