get_replay_opts() did not fill `squash_onto' if possible, meaning that
this field should be read from the disk by the sequencer through
read_populate_opts().  Without this, calling `pick_commits()' directly
will result in incorrect results with `rebase --root'.

Let’s change that.

Signed-off-by: Alban Gruin <alban.gr...@gmail.com>
---
 builtin/rebase.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/builtin/rebase.c b/builtin/rebase.c
index e8319d5946..2097d41edc 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -117,6 +117,11 @@ static struct replay_opts get_replay_opts(const struct 
rebase_options *opts)
        if (opts->strategy_opts)
                parse_strategy_opts(&replay, opts->strategy_opts);
 
+       if (opts->squash_onto) {
+               oidcpy(&replay.squash_onto, opts->squash_onto);
+               replay.have_squash_onto = 1;
+       }
+
        return replay;
 }
 
-- 
2.23.0

Reply via email to