Merge branch 'dl/rebase-i-keep-base'
authorJunio C Hamano <gitster@pobox.com>
Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)
"git rebase --keep-base <upstream>" tries to find the original base
of the topic being rebased and rebase on top of that same base,
which is useful when running the "git rebase -i" (and its limited
variant "git rebase -x").

The command also has learned to fast-forward in more cases where it
can instead of replaying to recreate identical commits.

* dl/rebase-i-keep-base:
  rebase: teach rebase --keep-base
  rebase tests: test linear branch topology
  rebase: fast-forward --fork-point in more cases
  rebase: fast-forward --onto in more cases
  rebase: refactor can_fast_forward into goto tower
  t3432: test for --no-ff's interaction with fast-forward
  t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests
  t3432: test rebase fast-forward behavior
  t3431: add rebase --fork-point tests

1  2 
Documentation/git-rebase.txt
builtin/rebase.c
contrib/completion/git-completion.bash
t/t3400-rebase.sh
t/t3404-rebase-interactive.sh

@@@ -543,6 -565,10 +565,8 @@@ In addition, the following pairs of opt
   * --preserve-merges and --interactive
   * --preserve-merges and --signoff
   * --preserve-merges and --rebase-merges
 - * --rebase-merges and --strategy
 - * --rebase-merges and --strategy-option
+  * --keep-base and --onto
+  * --keep-base and --root
  
  BEHAVIORAL DIFFERENCES
  -----------------------
Simple merge
Simple merge
Simple merge