git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 09/11] rebase: use our standard error return value

From
PGPhillip Wood via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 8, 2021, 09:49 UTC
Message-ID
<f0644cde7252920abc831e7a81f33c85f17e818b.1631094563.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.1033.git.1631094563.gitgitgadget@gmail.com>
From: Phillip Wood <phillip.wood@dunelm.org.uk>

Git uses −1 to signal an error. The builtin rebase converts these to +1 all over the place using !! (presumably because the in the scripted version an error was signalled by +1). This is confusing and clutters the code, we only need to convert the value when the function returns.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
---
 builtin/rebase.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 48ab7d9ae3b..e8c3c77bab0 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -1573,7 +1573,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 			die(_("could not move back to %s"),
 			    oid_to_hex(&options.orig_head));
 		remove_branch_state(the_repository, 0);
-		ret = !!finish_rebase(&options);
+		ret = finish_rebase(&options);
 		goto cleanup;
 	}
 	case ACTION_QUIT: {
@@ -1582,11 +1582,11 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 			struct replay_opts replay = REPLAY_OPTS_INIT;
 
 			replay.action = REPLAY_INTERACTIVE_REBASE;
-			ret = !!sequencer_remove_state(&replay);
+			ret = sequencer_remove_state(&replay);
 		} else {
 			strbuf_reset(&buf);
 			strbuf_addstr(&buf, options.state_dir);
-			ret = !!remove_dir_recursively(&buf, 0);
+			ret = remove_dir_recursively(&buf, 0);
 			if (ret)
 				error(_("could not remove '%s'"),
 				       options.state_dir);
@@ -1958,7 +1958,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 
 	if (require_clean_work_tree(the_repository, "rebase",
 				    _("Please commit or stash them."), 1, 1)) {
-		ret = 1;
+		ret = -1;
 		goto cleanup;
 	}
 
@@ -1993,7 +1993,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 					       RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
 					       NULL, buf.buf,
 					       DEFAULT_REFLOG_ACTION) < 0) {
-					ret = !!error(_("could not switch to "
+					ret = error(_("could not switch to "
 							"%s"),
 						      options.switch_to);
 					goto cleanup;
@@ -2008,7 +2008,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 			else
 				printf(_("Current branch %s is up to date.\n"),
 				       branch_name);
-			ret = !!finish_rebase(&options);
+			ret = finish_rebase(&options);
 			goto cleanup;
 		} else if (!(options.flags & REBASE_NO_QUIET))
 			; /* be quiet */
@@ -2085,7 +2085,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 		reset_head(the_repository, NULL, "Fast-forwarded", options.head_name,
 			   RESET_HEAD_REFS_ONLY, "HEAD", buf.buf,
 			   DEFAULT_REFLOG_ACTION);
-		ret = !!finish_rebase(&options);
+		ret = finish_rebase(&options);
 		goto cleanup;
 	}
 
@@ -2099,7 +2099,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
 	options.revisions = revisions.buf;
 
 run_rebase:
-	ret = !!run_specific_rebase(&options, action);
+	ret = run_specific_rebase(&options, action);
 
 cleanup:
 	strbuf_release(&buf);
@@ -2110,5 +2110,5 @@ cleanup:
 	free(options.strategy);
 	strbuf_release(&options.git_format_patch_opt);
 	free(squash_onto_name);
-	return ret;
+	return !!ret;
 }
-- 
gitgitgadget
Previous: Johannes SchindelinNext: Phillip Wood via GitGitGadget
Message 16 of 55 in “rebase: dereference tags”
  1. 00/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 8, 2021
  2. 01/11 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 8, 2021
  3. Ævar Arnfjörð BjarmasonSep 8, 2021
  4. 02/11 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 8, 2021
  5. Ævar Arnfjörð BjarmasonSep 8, 2021
  6. 03/11 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 8, 2021
  7. Ævar Arnfjörð BjarmasonSep 8, 2021
  8. Phillip WoodSep 8, 2021
  9. 04/11 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 8, 2021
  10. 06/11 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 8, 2021
  11. Ævar Arnfjörð BjarmasonSep 8, 2021
  12. 05/11 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 8, 2021
  13. 07/11 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 8, 2021
  14. 08/11 rebase: remove redundant strbufPhillip Wood via GitGitGadget, Sep 8, 2021
  15. Johannes SchindelinSep 9, 2021
  16. 09/11 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 8, 2021
  17. 11/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 8, 2021
  18. Ævar Arnfjörð BjarmasonSep 8, 2021
  19. 10/11 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 8, 2021
  20. 00/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 13, 2021
  21. 01/11 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 13, 2021
  22. 02/11 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 13, 2021
  23. 03/11 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 13, 2021
  24. 04/11 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 13, 2021
  25. 05/11 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 13, 2021
  26. 06/11 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 13, 2021
  27. 07/11 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 13, 2021
  28. 08/11 rebase: remove redundant strbufPhillip Wood via GitGitGadget, Sep 13, 2021
  29. René ScharfeSep 13, 2021
  30. Junio C HamanoSep 13, 2021
  31. Phillip WoodSep 14, 2021
  32. Phillip WoodSep 14, 2021
  33. 09/11 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 13, 2021
  34. 11/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 13, 2021
  35. Junio C HamanoSep 13, 2021
  36. Phillip WoodSep 14, 2021
  37. Phillip WoodSep 14, 2021
  38. Junio C HamanoSep 14, 2021
  39. Elijah NewrenSep 14, 2021
  40. Sergey OrganovSep 14, 2021
  41. Phillip WoodSep 14, 2021
  42. 10/11 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 13, 2021
  43. Elijah NewrenSep 14, 2021
  44. 00/10 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 21, 2021
  45. 01/10 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 21, 2021
  46. 02/10 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 21, 2021
  47. 03/10 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 21, 2021
  48. 04/10 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 21, 2021
  49. 05/10 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 21, 2021
  50. 06/10 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 21, 2021
  51. 07/10 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 21, 2021
  52. 08/10 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 21, 2021
  53. 09/10 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 21, 2021
  54. 10/10 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 21, 2021
  55. Elijah NewrenSep 24, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.