advice: handle "rebase" in error_resolve_conflict()

This makes sure that we get a properly translated message rather than inserting the command (which we failed to translate) into a generic fallback message. The function is called indirectly via die_resolve_conflict() with fixed strings, and directly with the string obtained via action_name(), which in turn returns a string from a fixed set. Hence we know that the now covered set of strings is exhausitive, and will therefore BUG() out when encountering an unexpected string. We also know that all covered strings are actually used. Arguably, the above suggests that it would be cleaner to pass the command as an enum in the first place, but that's left for another time. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Oswald Buddenhagen committed Aug 7, 2023 at 19:09 UTC ff29a61cbbc83f0948606df37dbc734436b62c17
1 file changed +3 -2
advice.c
+3 -2
@@ -191,9 +191,10 @@ int error_resolve_conflict(const char *me)
191 error(_("Pulling is not possible because you have unmerged files."));
192 else if (!strcmp(me, "revert"))
193 error(_("Reverting is not possible because you have unmerged files."));
194 + else if (!strcmp(me, "rebase"))
195 + error(_("Rebasing is not possible because you have unmerged files."));
196 else
195 - error(_("It is not possible to %s because you have unmerged files."),
196 - me);
197 + BUG("Unhandled conflict reason '%s'", me);
198
199 if (advice_enabled(ADVICE_RESOLVE_CONFLICT))
200 /*