]> git.ipfire.org Git - thirdparty/git.git/commitdiff
replay: die() instead of failing assert()
authorElijah Newren <newren@gmail.com>
Fri, 24 Nov 2023 11:10:33 +0000 (12:10 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 26 Nov 2023 01:10:48 +0000 (10:10 +0900)
It's not a good idea for regular Git commands to use an assert() to
check for things that could happen but are not supported.

Let's die() with an explanation of the issue instead.

Co-authored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/replay.c

index 7998f6ed0409e8aa15b89542e803c5d40ce6a682..f48c5ed25576809c1a84e9c74d4f1244d26e38ca 100644 (file)
@@ -179,7 +179,12 @@ int cmd_replay(int argc, const char **argv, const char *prefix)
 
                fprintf(stderr, "Rebasing %s...\r",
                        oid_to_hex(&commit->object.oid));
-               assert(commit->parents && !commit->parents->next);
+
+               if (!commit->parents)
+                       die(_("replaying down to root commit is not supported yet!"));
+               if (commit->parents->next)
+                       die(_("replaying merge commits is not supported yet!"));
+
                base = commit->parents->item;
 
                next_tree = repo_get_commit_tree(the_repository, commit);