From 8fa6eea0ffd271f0564048dc939987e9640efca5 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 4 May 2018 01:01:29 +0200 Subject: [PATCH] rebase --rebase-merges: root commits can be cousins, too Reported by Wink Saville: when rebasing with no-rebase-cousins, we will want to refrain from rebasing all of them, even when they are root commits. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- sequencer.c | 3 ++- t/t3430-rebase-merges.sh | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/sequencer.c b/sequencer.c index 65a8c49378..01e561bc20 100644 --- a/sequencer.c +++ b/sequencer.c @@ -3903,7 +3903,8 @@ static int make_script_with_merges(struct pretty_print_context *pp, } if (!commit) - fprintf(out, "%s onto\n", cmd_reset); + fprintf(out, "%s %s\n", cmd_reset, + rebase_cousins ? "onto" : "[new root]"); else { const char *to = NULL; diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh index 5543f1d5a3..ce6de6f491 100755 --- a/t/t3430-rebase-merges.sh +++ b/t/t3430-rebase-merges.sh @@ -287,5 +287,30 @@ test_expect_success 'a "merge" into a root commit is a fast-forward' ' test_cmp_rev HEAD $head ' +test_expect_success 'A root commit can be a cousin, treat it that way' ' + git checkout --orphan khnum && + test_commit yama && + git checkout -b asherah master && + test_commit shamkat && + git merge --allow-unrelated-histories khnum && + test_tick && + git rebase -f -r HEAD^ && + ! test_cmp_rev HEAD^2 khnum && + test_cmp_graph HEAD^.. <<-\EOF && + * Merge branch '\''khnum'\'' into asherah + |\ + | * yama + o shamkat + EOF + test_tick && + git rebase --rebase-merges=rebase-cousins HEAD^ && + test_cmp_graph HEAD^.. <<-\EOF + * Merge branch '\''khnum'\'' into asherah + |\ + | * yama + |/ + o shamkat + EOF +' test_done