All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] replay: die descriptively when invalid commit-ish
@ 2025-12-22 22:04 kristofferhaugsbakk
  2025-12-22 22:04 ` [PATCH 1/2] " kristofferhaugsbakk
                   ` (4 more replies)
  0 siblings, 5 replies; 36+ messages in thread
From: kristofferhaugsbakk @ 2025-12-22 22:04 UTC (permalink / raw)
  To: git; +Cc: Kristoffer Haugsbakk, christian.couder, newren, Siddharth Asthana

From: Kristoffer Haugsbakk <code@khaugsbakk.name>

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


^ permalink raw reply	[flat|nested] 36+ messages in thread
* [PATCH v2 1/5] replay: remove dead code and rearrange
@ 2026-01-28  0:04 Hassan
  0 siblings, 0 replies; 36+ messages in thread
From: Hassan @ 2026-01-28  0:04 UTC (permalink / raw)
  To: gitster
  Cc: christian.couder, code, git, kristofferhaugsbakk, newren,
	phillip.wood, siddharthasthana31

Vodafone cash 

Sent from my iPhone

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2026-01-28  0:05 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-22 22:04 [PATCH 0/2] replay: die descriptively when invalid commit-ish kristofferhaugsbakk
2025-12-22 22:04 ` [PATCH 1/2] " kristofferhaugsbakk
2025-12-23  3:12   ` Junio C Hamano
2025-12-23 10:52     ` Phillip Wood
2025-12-23 13:41       ` Junio C Hamano
2025-12-30 14:30       ` Kristoffer Haugsbakk
2025-12-22 22:04 ` [PATCH 2/2] t3650: add more regression tests for failure conditions kristofferhaugsbakk
2025-12-23 10:58   ` Phillip Wood
2025-12-30 14:33     ` Kristoffer Haugsbakk
2025-12-23  3:16 ` [PATCH 0/2] replay: die descriptively when invalid commit-ish Junio C Hamano
2025-12-30 14:33   ` Kristoffer Haugsbakk
2025-12-24  3:03 ` Elijah Newren
2025-12-30 14:31   ` Kristoffer Haugsbakk
2025-12-30 15:01 ` [PATCH v2 0/5] " kristofferhaugsbakk
2025-12-30 15:01   ` [PATCH v2 1/5] replay: remove dead code and rearrange kristofferhaugsbakk
2025-12-30 22:50     ` Elijah Newren
2025-12-30 23:37       ` Junio C Hamano
2026-01-02  9:51       ` Kristoffer Haugsbakk
2025-12-30 15:01   ` [PATCH v2 2/5] replay: find *onto only after testing for ref name kristofferhaugsbakk
2025-12-30 22:51     ` Elijah Newren
2025-12-30 15:01   ` [PATCH v2 3/5] replay: die descriptively when invalid commit-ish is given kristofferhaugsbakk
2025-12-30 22:52     ` Elijah Newren
2026-01-02 11:11       ` Kristoffer Haugsbakk
2025-12-30 15:01   ` [PATCH v2 4/5] replay: die if we cannot parse object kristofferhaugsbakk
2025-12-30 15:01   ` [PATCH v2 5/5] t3650: add more regression tests for failure conditions kristofferhaugsbakk
2025-12-30 22:53   ` [PATCH v2 0/5] replay: die descriptively when invalid commit-ish Elijah Newren
2026-01-05 19:53   ` [PATCH v3 0/6] " kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 1/6] replay: remove dead code and rearrange kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 2/6] replay: find *onto only after testing for ref name kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 3/6] replay: die descriptively when invalid commit-ish is given kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 4/6] replay: improve code comment and die message kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 5/6] replay: die if we cannot parse object kristofferhaugsbakk
2026-01-05 19:53     ` [PATCH v3 6/6] t3650: add more regression tests for failure conditions kristofferhaugsbakk
2026-01-06 23:12     ` [PATCH v3 0/6] replay: die descriptively when invalid commit-ish Elijah Newren
2026-01-07  3:56       ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2026-01-28  0:04 [PATCH v2 1/5] replay: remove dead code and rearrange Hassan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.