From: kristofferhaugsbakk@fastmail.com Date: Mon, 22 Dec 2025 22:04:41 GMT Subject: [PATCH 0/2] replay: die descriptively when invalid commit-ish Message-ID: From: Kristoffer Haugsbakk You get this error when you for example mistype the argument to `--onto`: fatal: Replaying down to root commit is not supported yet! Consider that you might not know yourself that you have mistyped something; then this looks even more puzzling. You might have given a range like `main..topic` but the command says that it would need to replay down to the root commit. The only thing that’s happened though is that `NULL` has been interpreted in the wrong way. Let’s instead die immediately when the real error happens, in other words when we can’t find the commit for the given commit-ish. Also add more regression tests. Somewhat unrelated to this change—and caveat not a C programmer—I was confused by `determine_replay_mode`. Most of the function deals with three cases: if (onto_name) { ... } else if (*advance_name) { ... } else { ... } But I don’t get the `else` since you now need to provide either `--onto` or `--advance`. And both require an argument. So when can the fallthrough `else` happen? I thought that maybe the `else` was old code that predated `--onto` and `--advance` being mandatory. But that whole method and this check was added in the same commit, in 22d99f01 (replay: add --advance or 'cherry-pick' mode, 2023-11-24): if (!onto_name && !advance_name) { error(_("option --onto or --advance is mandatory")); But just ignore this section if I’m simply confused. Kristoffer Haugsbakk (2): replay: die descriptively when invalid commit-ish t3650: add more regression tests for failure conditions builtin/replay.c | 2 +- t/t3650-replay-basics.sh | 43 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) base-commit: 9a2fb147f2c61d0cab52c883e7e26f5b7948e3ed -- 2.52.0.10.g08704017180