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

[GSoC][PATCH v4 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in C

From
Alban Gruin <alban.gruin@gmail.com>
Date
Jul 24, 2018, 16:32 UTC
Message-ID
<20180724163221.15201-19-alban.gruin@gmail.com>
In-Reply-To
<20180724163221.15201-1-alban.gruin@gmail.com>

This rewrites the submodes of interactive rebase (`--continue`, `--skip`, `--edit-todo`, and `--show-current-patch`) in C.

git-rebase.sh is then modified to call directly git-rebase--interactive2 instead of git-rebase--interactive.sh.

Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
---
 builtin/rebase--interactive2.c | 47 +++++++++++++++++++++++++++++++---
 git-rebase.sh                  | 45 +++++++++++++++++++++++++++++---
 2 files changed, 84 insertions(+), 8 deletions(-)
diff --git a/builtin/rebase--interactive2.c b/builtin/rebase--interactive2.c
index e89ef71499..53b4f7483d 100644
--- a/builtin/rebase--interactive2.c
+++ b/builtin/rebase--interactive2.c
@@ -134,11 +134,14 @@ int cmd_rebase__interactive(int argc, const char **argv, const char *prefix)
 {
 	struct replay_opts opts = REPLAY_OPTS_INIT;
 	unsigned flags = 0, keep_empty = 0, rebase_merges = 0, autosquash = 0;
-	int abbreviate_commands = 0, rebase_cousins = -1;
+	int abbreviate_commands = 0, rebase_cousins = -1, ret = 0;
 	const char *onto = NULL, *onto_name = NULL, *restrict_revision = NULL,
 		*squash_onto = NULL, *upstream = NULL, *head_name = NULL,
 		*switch_to = NULL, *cmd = NULL;
 	char *raw_strategies = NULL;
+	enum {
+		NONE = 0, CONTINUE, SKIP, EDIT_TODO, SHOW_CURRENT_PATCH
+	} command = 0;
 	struct option options[] = {
 		OPT_BOOL(0, "ff", &opts.allow_ff, N_("allow fast-forward")),
 		OPT_BOOL(0, "keep-empty", &keep_empty, N_("keep empty commits")),
@@ -151,6 +154,13 @@ int cmd_rebase__interactive(int argc, const char **argv, const char *prefix)
 			 N_("move commits that begin with squash!/fixup!")),
 		OPT_BOOL(0, "signoff", &opts.signoff, N_("sign commits")),
 		OPT__VERBOSE(&opts.verbose, N_("be verbose")),
+		OPT_CMDMODE(0, "continue", &command, N_("continue rebase"),
+			    CONTINUE),
+		OPT_CMDMODE(0, "skip", &command, N_("skip commit"), SKIP),
+		OPT_CMDMODE(0, "edit-todo", &command, N_("edit the todo list"),
+			    EDIT_TODO),
+		OPT_CMDMODE(0, "show-current-patch", &command, N_("show the current patch"),
+			    SHOW_CURRENT_PATCH),
 		OPT_STRING(0, "onto", &onto, N_("onto"), N_("onto")),
 		OPT_STRING(0, "restrict-revision", &restrict_revision,
 			   N_("restrict-revision"), N_("restrict revision")),
@@ -194,7 +204,36 @@ int cmd_rebase__interactive(int argc, const char **argv, const char *prefix)
 		warning(_("--[no-]rebase-cousins has no effect without "
 			  "--rebase-merges"));
 
-	return !!do_interactive_rebase(&opts, flags, switch_to, upstream, onto,
-				       onto_name, squash_onto, head_name, restrict_revision,
-				       raw_strategies, cmd, autosquash);
+	switch (command) {
+	case NONE:
+		ret = do_interactive_rebase(&opts, flags, switch_to, upstream, onto,
+					    onto_name, squash_onto, head_name, restrict_revision,
+					    raw_strategies, cmd, autosquash);
+		break;
+	case SKIP: {
+		struct string_list merge_rr = STRING_LIST_INIT_DUP;
+
+		rerere_clear(&merge_rr);
+		/* fallthrough */
+	case CONTINUE:
+		ret = sequencer_continue(&opts);
+		break;
+	}
+	case EDIT_TODO:
+		ret = edit_todo_list(flags);
+		break;
+	case SHOW_CURRENT_PATCH: {
+		struct child_process cmd = CHILD_PROCESS_INIT;
+
+		cmd.git_cmd = 1;
+		argv_array_pushl(&cmd.args, "show", "REBASE_HEAD", "--", NULL);
+		ret = run_command(&cmd);
+
+		break;
+	}
+	default:
+		BUG("invalid command '%d'", command);
+	}
+
+	return !!ret;
 }
diff --git a/git-rebase.sh b/git-rebase.sh
index 86da3816be..65e909d7bd 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -200,19 +200,56 @@ finish_rebase () {
 	rm -rf "$state_dir"
 }
 
+run_interactive () {
+	GIT_CHERRY_PICK_HELP="$resolvemsg"
+	export GIT_CHERRY_PICK_HELP
+
+	test -n "$keep_empty" && keep_empty="--keep-empty"
+	test -n "$rebase_merges" && rebase_merges="--rebase-merges"
+	test -n "$rebase_cousins" && rebase_cousins="--rebase-cousins"
+	test -n "$autosquash" && autosquash="--autosquash"
+	test -n "$verbose" && verbose="--verbose"
+	test -n "$force_rebase" && force_rebase="--no-ff"
+	test -n "$restrict_revisions" && \
+		restrict_revisions="--restrict-revisions=^$restrict_revisions"
+	test -n "$upstream" && upstream="--upstream=$upstream"
+	test -n "$onto" && onto="--onto=$onto"
+	test -n "$squash_onto" && squash_onto="--squash-onto=$squash_onto"
+	test -n "$onto_name" && onto_name="--onto-name=$onto_name"
+	test -n "$head_name" && head_name="--head-name=$head_name"
+	test -n "$strategy" && strategy="--strategy=$strategy"
+	test -n "$strategy_opts" && strategy_opts="--strategy-opts=$strategy_opts"
+	test -n "$switch_to" && switch_to="--switch-to=$switch_to"
+	test -n "$cmd" && cmd="--cmd=$cmd"
+	test -n "$action" && action="--$action"
+
+	exec git rebase--interactive2 "$action" "$keep_empty" "$rebase_merges" "$rebase_cousins" \
+		"$upstream" "$onto" "$squash_onto" "$restrict_revision" \
+		"$allow_empty_message" "$autosquash" "$verbose" \
+		"$force_rebase" "$onto_name" "$head_name" "$strategy" \
+		"$strategy_opts" "$cmd" "$switch_to" \
+		"$allow_rerere_autoupdate" "$gpg_sign_opt" "$signoff"
+}
+
 run_specific_rebase () {
 	if [ "$interactive_rebase" = implied ]; then
 		GIT_EDITOR=:
 		export GIT_EDITOR
 		autosquash=
 	fi
-	. git-rebase--$type
 
-	if test -z "$preserve_merges"
+	if test -n "$interactive_rebase" -a -z "$preserve_merges"
 	then
-		git_rebase__$type
+		run_interactive
 	else
-		git_rebase__preserve_merges
+		. git-rebase--$type
+
+		if test -z "$preserve_merges"
+		then
+			git_rebase__$type
+		else
+			git_rebase__preserve_merges
+		fi
 	fi
 
 	ret=$?
-- 
2.18.0
Previous: Alban GruinNext: Alban Gruin
Message 77 of 193 in “rebase -i: rewrite some parts in C”
  1. Alban GruinJul 2, 2018
  2. [GSoC][PATCH v2 1/7] sequencer: make two functions and an enum from sequencer.c publicAlban Gruin, Jul 2, 2018
  3. Junio C HamanoJul 3, 2018
  4. Alban GruinJul 5, 2018
  5. [GSoC][PATCH v2 2/7] rebase--interactive: rewrite append_todo_help() in CAlban Gruin, Jul 2, 2018
  6. Junio C HamanoJul 3, 2018
  7. [GSoC][PATCH v2 4/7] rebase-interactive: rewrite the edit-todo functionality in CAlban Gruin, Jul 2, 2018
  8. [GSoC][PATCH v2 3/7] editor: add a function to launch the sequence editorAlban Gruin, Jul 2, 2018
  9. Junio C HamanoJul 3, 2018
  10. [GSoC][PATCH v2 6/7] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Jul 2, 2018
  11. Junio C HamanoJul 3, 2018
  12. Johannes SchindelinJul 6, 2018
  13. Junio C HamanoJul 6, 2018
  14. Johannes SchindelinJul 6, 2018
  15. Junio C HamanoJul 6, 2018
  16. Junio C HamanoJul 7, 2018
  17. [GSoC][PATCH v2 7/7] rebase -i: rewrite checkout_onto() in CAlban Gruin, Jul 2, 2018
  18. [GSoC][PATCH v2 5/7] sequencer: add a new function to silence a command, except if it fails.Alban Gruin, Jul 2, 2018
  19. Junio C HamanoJul 3, 2018
  20. [GSoC][PATCH v3 00/13] rebase -i: rewrite some parts in CAlban Gruin, Jul 10, 2018
  21. [GSoC][PATCH v3 01/13] sequencer: make two functions and an enum from sequencer.c publicAlban Gruin, Jul 10, 2018
  22. Junio C HamanoJul 10, 2018
  23. [GSoC][PATCH v3 02/13] rebase--interactive: rewrite append_todo_help() in CAlban Gruin, Jul 10, 2018
  24. Alban GruinJul 10, 2018
  25. Junio C HamanoJul 10, 2018
  26. [GSoC][PATCH v3 07/13] rebase -i: rewrite checkout_onto() in CAlban Gruin, Jul 10, 2018
  27. Junio C HamanoJul 10, 2018
  28. [GSoC][PATCH v3 08/13] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Jul 10, 2018
  29. Junio C HamanoJul 10, 2018
  30. [GSoC][PATCH v3 10/13] rebase--interactive: rewrite complete_action() in CAlban Gruin, Jul 10, 2018
  31. Junio C HamanoJul 10, 2018
  32. Alban GruinJul 11, 2018
  33. [GSoC][PATCH v3 13/13] rebase -i: rewrite the rest of init_revisions_and_shortrevisions in CAlban Gruin, Jul 10, 2018
  34. [GSoC][PATCH v3 11/13] rebase--interactive: remove unused modes and functionsAlban Gruin, Jul 10, 2018
  35. Junio C HamanoJul 10, 2018
  36. [GSoC][PATCH v3 12/13] rebase -i: implement the logic to initialize the variable $revision in CAlban Gruin, Jul 10, 2018
  37. Junio C HamanoJul 12, 2018
  38. Junio C HamanoJul 12, 2018
  39. [GSoC][PATCH v3 09/13] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Jul 10, 2018
  40. Junio C HamanoJul 10, 2018
  41. Junio C HamanoJul 10, 2018
  42. [GSoC][PATCH v3 04/13] rebase-interactive: rewrite the edit-todo functionality in CAlban Gruin, Jul 10, 2018
  43. Junio C HamanoJul 10, 2018
  44. [GSoC][PATCH v3 05/13] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Jul 10, 2018
  45. Junio C HamanoJul 10, 2018
  46. [GSoC][PATCH v3 03/13] editor: add a function to launch the sequence editorAlban Gruin, Jul 10, 2018
  47. Alban GruinJul 10, 2018
  48. Junio C HamanoJul 10, 2018
  49. [GSoC][PATCH v3 06/13] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Jul 10, 2018
  50. Junio C HamanoJul 10, 2018
  51. [GSoC][PATCH v4 00/20] rebase -i: rewrite in CAlban Gruin, Jul 24, 2018
  52. [GSoC][PATCH v4 01/20] sequencer: make two functions and an enum from sequencer.c publicAlban Gruin, Jul 24, 2018
  53. [GSoC][PATCH v4 02/20] rebase -i: rewrite append_todo_help() in CAlban Gruin, Jul 24, 2018
  54. [GSoC][PATCH v4 03/20] editor: add a function to launch the sequence editorAlban Gruin, Jul 24, 2018
  55. [GSoC][PATCH v4 04/20] rebase -i: rewrite the edit-todo functionality in CAlban Gruin, Jul 24, 2018
  56. [GSoC][PATCH v4 05/20] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Jul 24, 2018
  57. [GSoC][PATCH v4 06/20] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Jul 24, 2018
  58. [GSoC][PATCH v4 07/20] rebase -i: rewrite checkout_onto() in CAlban Gruin, Jul 24, 2018
  59. [GSoC][PATCH v4 08/20] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Jul 24, 2018
  60. [GSoC][PATCH v4 09/20] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Jul 24, 2018
  61. [GSoC][PATCH v4 10/20] t3404: todo list with commented-out commands only abortsAlban Gruin, Jul 24, 2018
  62. [GSoC][PATCH v4 11/20] rebase -i: rewrite complete_action() in CAlban Gruin, Jul 24, 2018
  63. [GSoC][PATCH v4 12/20] rebase -i: remove unused modes and functionsAlban Gruin, Jul 24, 2018
  64. [GSoC][PATCH v4 13/20] rebase -i: implement the logic to initialize $revisions in CAlban Gruin, Jul 24, 2018
  65. [GSoC][PATCH v4 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in CAlban Gruin, Jul 24, 2018
  66. [GSoC][PATCH v4 15/20] rebase -i: rewrite write_basic_state() in CAlban Gruin, Jul 24, 2018
  67. SZEDER GáborJul 30, 2018
  68. Alban GruinJul 30, 2018
  69. [GSoC][PATCH v4] fixup! rebase -i: rewrite write_basic_state() in CAlban Gruin, Jul 31, 2018
  70. Junio C HamanoJul 31, 2018
  71. Alban GruinJul 31, 2018
  72. Junio C HamanoJul 31, 2018
  73. Junio C HamanoJul 31, 2018
  74. Jeff KingAug 3, 2018
  75. [GSoC][PATCH v4 16/20] rebase -i: rewrite init_basic_state() in CAlban Gruin, Jul 24, 2018
  76. [GSoC][PATCH v4 17/20] rebase -i: implement the main part of interactive rebase as a builtinAlban Gruin, Jul 24, 2018
  77. [GSoC][PATCH v4 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in CAlban Gruin, Jul 24, 2018
  78. [GSoC][PATCH v4 19/20] rebase -i: remove git-rebase--interactive.shAlban Gruin, Jul 24, 2018
  79. [GSoC][PATCH v4 20/20] rebase -i: move rebase--helper modes to rebase--interactiveAlban Gruin, Jul 24, 2018
  80. Stefan BellerJul 25, 2018
  81. Junio C HamanoJul 25, 2018
  82. [GSoC][PATCH v5 00/20] rebase -i: rewrite in CAlban Gruin, Jul 31, 2018
  83. [GSoC][PATCH v5 01/20] sequencer: make two functions and an enum from sequencer.c publicAlban Gruin, Jul 31, 2018
  84. [GSoC][PATCH v5 02/20] rebase -i: rewrite append_todo_help() in CAlban Gruin, Jul 31, 2018
  85. Phillip WoodAug 7, 2018
  86. Christian CouderAug 7, 2018
  87. Phillip WoodAug 7, 2018
  88. Christian CouderAug 7, 2018
  89. Phillip WoodAug 7, 2018
  90. Alban GruinAug 8, 2018
  91. Phillip WoodAug 8, 2018
  92. [GSoC][PATCH v5 03/20] editor: add a function to launch the sequence editorAlban Gruin, Jul 31, 2018
  93. [GSoC][PATCH v5 04/20] rebase -i: rewrite the edit-todo functionality in CAlban Gruin, Jul 31, 2018
  94. Phillip WoodAug 7, 2018
  95. Alban GruinAug 8, 2018
  96. Phillip WoodAug 8, 2018
  97. Alban GruinAug 9, 2018
  98. Phillip WoodAug 9, 2018
  99. Phillip WoodAug 9, 2018
  100. [GSoC][PATCH v5 05/20] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Jul 31, 2018
  101. [GSoC][PATCH v5 06/20] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Jul 31, 2018
  102. [GSoC][PATCH v5 07/20] rebase -i: rewrite checkout_onto() in CAlban Gruin, Jul 31, 2018
  103. [GSoC][PATCH v5 08/20] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Jul 31, 2018
  104. [GSoC][PATCH v5 09/20] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Jul 31, 2018
  105. [GSoC][PATCH v5 10/20] t3404: todo list with commented-out commands only abortsAlban Gruin, Jul 31, 2018
  106. [GSoC][PATCH v5 11/20] rebase -i: rewrite complete_action() in CAlban Gruin, Jul 31, 2018
  107. Phillip WoodAug 9, 2018
  108. Alban GruinAug 9, 2018
  109. [GSoC][PATCH v5 12/20] rebase -i: remove unused modes and functionsAlban Gruin, Jul 31, 2018
  110. [GSoC][PATCH v5 13/20] rebase -i: implement the logic to initialize $revisions in CAlban Gruin, Jul 31, 2018
  111. [GSoC][PATCH v5 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in CAlban Gruin, Jul 31, 2018
  112. [GSoC][PATCH v5 16/20] rebase -i: rewrite init_basic_state() in CAlban Gruin, Jul 31, 2018
  113. [GSoC][PATCH v5 15/20] rebase -i: rewrite write_basic_state() in CAlban Gruin, Jul 31, 2018
  114. [GSoC][PATCH v5 17/20] rebase -i: implement the main part of interactive rebase as a builtinAlban Gruin, Jul 31, 2018
  115. [GSoC][PATCH v5 19/20] rebase -i: remove git-rebase--interactive.shAlban Gruin, Jul 31, 2018
  116. [GSoC][PATCH v5 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in CAlban Gruin, Jul 31, 2018
  117. [GSoC][PATCH v5 20/20] rebase -i: move rebase--helper modes to rebase--interactiveAlban Gruin, Jul 31, 2018
  118. Junio C HamanoJul 31, 2018
  119. [GSoC][PATCH v6 00/20] rebase -i: rewrite in CAlban Gruin, Aug 10, 2018
  120. [GSoC][PATCH v6 01/20] sequencer: make three functions and an enum from sequencer.c publicAlban Gruin, Aug 10, 2018
  121. [GSoC][PATCH v6 02/20] rebase -i: rewrite append_todo_help() in CAlban Gruin, Aug 10, 2018
  122. [GSoC][PATCH v6 03/20] editor: add a function to launch the sequence editorAlban Gruin, Aug 10, 2018
  123. [GSoC][PATCH v6 04/20] rebase -i: rewrite the edit-todo functionality in CAlban Gruin, Aug 10, 2018
  124. [GSoC][PATCH v6 05/20] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Aug 10, 2018
  125. [GSoC][PATCH v6 06/20] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Aug 10, 2018
  126. [GSoC][PATCH v6 07/20] rebase -i: rewrite checkout_onto() in CAlban Gruin, Aug 10, 2018
  127. [GSoC][PATCH v6 08/20] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Aug 10, 2018
  128. [GSoC][PATCH v6 10/20] t3404: todo list with commented-out commands only abortsAlban Gruin, Aug 10, 2018
  129. [GSoC][PATCH v6 09/20] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Aug 10, 2018
  130. [GSoC][PATCH v6 11/20] rebase -i: rewrite complete_action() in CAlban Gruin, Aug 10, 2018
  131. Junio C HamanoAug 10, 2018
  132. Alban GruinAug 10, 2018
  133. Junio C HamanoAug 10, 2018
  134. Alban GruinAug 10, 2018
  135. Phillip WoodAug 17, 2018
  136. [GSoC][PATCH v6 12/20] rebase -i: remove unused modes and functionsAlban Gruin, Aug 10, 2018
  137. [GSoC][PATCH v6 13/20] rebase -i: implement the logic to initialize $revisions in CAlban Gruin, Aug 10, 2018
  138. [GSoC][PATCH v6 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in CAlban Gruin, Aug 10, 2018
  139. [GSoC][PATCH v6 15/20] rebase -i: rewrite write_basic_state() in CAlban Gruin, Aug 10, 2018
  140. Phillip WoodAug 17, 2018
  141. Johannes SchindelinAug 23, 2018
  142. [GSoC][PATCH v6 16/20] rebase -i: rewrite init_basic_state() in CAlban Gruin, Aug 10, 2018
  143. [GSoC][PATCH v6 17/20] rebase -i: implement the main part of interactive rebase as a builtinAlban Gruin, Aug 10, 2018
  144. [GSoC][PATCH v6 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in CAlban Gruin, Aug 10, 2018
  145. Johannes SchindelinAug 22, 2018
  146. Junio C HamanoAug 22, 2018
  147. Johannes SchindelinAug 23, 2018
  148. [GSoC][PATCH v6 19/20] rebase -i: remove git-rebase--interactive.shAlban Gruin, Aug 10, 2018
  149. [GSoC][PATCH v6 20/20] rebase -i: move rebase--helper modes to rebase--interactiveAlban Gruin, Aug 10, 2018
  150. Duy NguyenAug 13, 2018
  151. Alban GruinAug 13, 2018
  152. [GSoC][PATCH v7 00/20] rebase -i: rewrite in CAlban Gruin, Aug 28, 2018
  153. [GSoC][PATCH v7 01/20] sequencer: make three functions and an enum from sequencer.c publicAlban Gruin, Aug 28, 2018
  154. [GSoC][PATCH v7 02/20] rebase -i: rewrite append_todo_help() in CAlban Gruin, Aug 28, 2018
  155. [GSoC][PATCH v7 03/20] editor: add a function to launch the sequence editorAlban Gruin, Aug 28, 2018
  156. [GSoC][PATCH v7 04/20] rebase -i: rewrite the edit-todo functionality in CAlban Gruin, Aug 28, 2018
  157. [GSoC][PATCH v7 05/20] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Aug 28, 2018
  158. [GSoC][PATCH v7 06/20] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Aug 28, 2018
  159. [GSoC][PATCH v7 07/20] rebase -i: rewrite checkout_onto() in CAlban Gruin, Aug 28, 2018
  160. [GSoC][PATCH v7 08/20] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Aug 28, 2018
  161. [GSoC][PATCH v7 09/20] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Aug 28, 2018
  162. [GSoC][PATCH v7 10/20] t3404: todo list with commented-out commands only abortsAlban Gruin, Aug 28, 2018
  163. [GSoC][PATCH v7 11/20] rebase -i: rewrite complete_action() in CAlban Gruin, Aug 28, 2018
  164. [GSoC][PATCH v7 12/20] rebase -i: remove unused modes and functionsAlban Gruin, Aug 28, 2018
  165. [GSoC][PATCH v7 13/20] rebase -i: implement the logic to initialize $revisions in CAlban Gruin, Aug 28, 2018
  166. [GSoC][PATCH v7 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in CAlban Gruin, Aug 28, 2018
  167. [GSoC][PATCH v7 16/20] rebase -i: rewrite init_basic_state() in CAlban Gruin, Aug 28, 2018
  168. [GSoC][PATCH v7 15/20] rebase -i: rewrite write_basic_state() in CAlban Gruin, Aug 28, 2018
  169. [GSoC][PATCH v7 17/20] rebase -i: implement the main part of interactive rebase as a builtinAlban Gruin, Aug 28, 2018
  170. [GSoC][PATCH v7 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in CAlban Gruin, Aug 28, 2018
  171. [GSoC][PATCH v7 19/20] rebase -i: remove git-rebase--interactive.shAlban Gruin, Aug 28, 2018
  172. [GSoC][PATCH v7 20/20] rebase -i: move rebase--helper modes to rebase--interactiveAlban Gruin, Aug 28, 2018
  173. [GSoC][PATCH v8 00/20] rebase -i: rewrite in CAlban Gruin, Sep 27, 2018
  174. [GSoC][PATCH v8 01/20] sequencer: make three functions and an enum from sequencer.c publicAlban Gruin, Sep 27, 2018
  175. [GSoC][PATCH v8 02/20] rebase -i: rewrite append_todo_help() in CAlban Gruin, Sep 27, 2018
  176. [GSoC][PATCH v8 03/20] editor: add a function to launch the sequence editorAlban Gruin, Sep 27, 2018
  177. [GSoC][PATCH v8 04/20] rebase -i: rewrite the edit-todo functionality in CAlban Gruin, Sep 27, 2018
  178. [GSoC][PATCH v8 05/20] sequencer: add a new function to silence a command, except if it failsAlban Gruin, Sep 27, 2018
  179. [GSoC][PATCH v8 06/20] rebase -i: rewrite setup_reflog_action() in CAlban Gruin, Sep 27, 2018
  180. [GSoC][PATCH v8 07/20] rebase -i: rewrite checkout_onto() in CAlban Gruin, Sep 27, 2018
  181. [GSoC][PATCH v8 09/20] sequencer: change the way skip_unnecessary_picks() returns its resultAlban Gruin, Sep 27, 2018
  182. [GSoC][PATCH v8 08/20] sequencer: refactor append_todo_help() to write its message to a bufferAlban Gruin, Sep 27, 2018
  183. [GSoC][PATCH v8 10/20] t3404: todo list with commented-out commands only abortsAlban Gruin, Sep 27, 2018
  184. [GSoC][PATCH v8 11/20] rebase -i: rewrite complete_action() in CAlban Gruin, Sep 27, 2018
  185. [GSoC][PATCH v8 12/20] rebase -i: remove unused modes and functionsAlban Gruin, Sep 27, 2018
  186. [GSoC][PATCH v8 13/20] rebase -i: implement the logic to initialize $revisions in CAlban Gruin, Sep 27, 2018
  187. [GSoC][PATCH v8 14/20] rebase -i: rewrite the rest of init_revisions_and_shortrevisions() in CAlban Gruin, Sep 27, 2018
  188. [GSoC][PATCH v8 16/20] rebase -i: rewrite init_basic_state() in CAlban Gruin, Sep 27, 2018
  189. [GSoC][PATCH v8 15/20] rebase -i: rewrite write_basic_state() in CAlban Gruin, Sep 27, 2018
  190. [GSoC][PATCH v8 17/20] rebase -i: implement the main part of interactive rebase as a builtinAlban Gruin, Sep 27, 2018
  191. [GSoC][PATCH v8 18/20] rebase--interactive2: rewrite the submodes of interactive rebase in CAlban Gruin, Sep 27, 2018
  192. [GSoC][PATCH v8 19/20] rebase -i: remove git-rebase--interactive.shAlban Gruin, Sep 27, 2018
  193. [GSoC][PATCH v8 20/20] rebase -i: move rebase--helper modes to rebase--interactiveAlban Gruin, Sep 27, 2018

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.