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

[PATCH v2 3/5] sequencer: move the code writing total_nr on the disk to a new function

From
Alban Gruin <alban.gruin@gmail.com>
Date
Oct 7, 2019, 09:26 UTC
Message-ID
<20191007092641.12661-4-alban.gruin@gmail.com>
In-Reply-To
<20191007092641.12661-1-alban.gruin@gmail.com>

The total amount of commands can be used to show the progression of the rebasing in a shell. It is written to the disk by read_populate_todo() when the todo list is loaded from sequencer_continue() or pick_commits(), but not by complete_action().

This moves the part writing total_nr to a new function so it can be called from complete_action().

Signed-off-by: Alban Gruin <alban.gruin@gmail.com>
---
 sequencer.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 42313f8de6..ec7ea8d9e5 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -2342,6 +2342,16 @@ void sequencer_post_commit_cleanup(struct repository *r, int verbose)
 	sequencer_remove_state(&opts);
 }
 
+static void todo_list_write_total_nr(struct todo_list *todo_list)
+{
+	FILE *f = fopen_or_warn(rebase_path_msgtotal(), "w");
+
+	if (f) {
+		fprintf(f, "%d\n", todo_list->total_nr);
+		fclose(f);
+	}
+}
+
 static int read_populate_todo(struct repository *r,
 			      struct todo_list *todo_list,
 			      struct replay_opts *opts)
@@ -2387,7 +2397,6 @@ static int read_populate_todo(struct repository *r,
 
 	if (is_rebase_i(opts)) {
 		struct todo_list done = TODO_LIST_INIT;
-		FILE *f = fopen_or_warn(rebase_path_msgtotal(), "w");
 
 		if (strbuf_read_file(&done.buf, rebase_path_done(), 0) > 0 &&
 		    !todo_list_parse_insn_buffer(r, done.buf.buf, &done))
@@ -2399,10 +2408,7 @@ static int read_populate_todo(struct repository *r,
 			+ count_commands(todo_list);
 		todo_list_release(&done);
 
-		if (f) {
-			fprintf(f, "%d\n", todo_list->total_nr);
-			fclose(f);
-		}
+		todo_list_write_total_nr(todo_list);
 	}
 
 	return 0;
-- 
2.23.0
Previous: Alban GruinNext: Alban Gruin
Message 29 of 50 in “sequencer: update `total_nr' when adding an item to a todo list”
  1. 1/5 sequencer: update `total_nr' when adding an item to a todo listAlban Gruin, Sep 25, 2019
  2. Junio C HamanoOct 2, 2019
  3. Johannes SchindelinOct 2, 2019
  4. Junio C HamanoOct 2, 2019
  5. Johannes SchindelinOct 2, 2019
  6. Alban GruinOct 2, 2019
  7. 2/5 sequencer: update `done_nr' when skipping commands in a todo listAlban Gruin, Sep 25, 2019
  8. 3/5 sequencer: move the code writing total_nr on the disk to a new functionAlban Gruin, Sep 25, 2019
  9. 4/5 rebase: fill `squash_onto' in get_replay_opts()Alban Gruin, Sep 25, 2019
  10. Phillip WoodSep 27, 2019
  11. Johannes SchindelinOct 2, 2019
  12. Phillip WoodOct 2, 2019
  13. Johannes SchindelinOct 2, 2019
  14. 5/5 sequencer: directly call pick_commits() from complete_action()Alban Gruin, Sep 25, 2019
  15. Phillip WoodSep 27, 2019
  16. Johannes SchindelinOct 2, 2019
  17. Alban GruinOct 2, 2019
  18. Junio C HamanoOct 2, 2019
  19. Alban GruinOct 2, 2019
  20. René ScharfeOct 26, 2019
  21. Alban GruinOct 26, 2019
  22. Junio C HamanoOct 28, 2019
  23. Junio C HamanoOct 28, 2019
  24. 0/5 Use complete_action's todo list to do the rebaseAlban Gruin, Sep 25, 2019
  25. Phillip WoodSep 27, 2019
  26. 0/5 Use complete_action's todo list to do the rebaseAlban Gruin, Oct 7, 2019
  27. 1/5 sequencer: update `total_nr' when adding an item to a todo listAlban Gruin, Oct 7, 2019
  28. 2/5 sequencer: update `done_nr' when skipping commands in a todo listAlban Gruin, Oct 7, 2019
  29. 3/5 sequencer: move the code writing total_nr on the disk to a new functionAlban Gruin, Oct 7, 2019
  30. 4/5 rebase: fill `squash_onto' in get_replay_opts()Alban Gruin, Oct 7, 2019
  31. 5/5 sequencer: directly call pick_commits() from complete_action()Alban Gruin, Oct 7, 2019
  32. Junio C HamanoOct 8, 2019
  33. Alban GruinOct 8, 2019
  34. Johannes SchindelinOct 14, 2019
  35. 0/5 Use complete_action's todo list to do the rebaseAlban Gruin, Nov 23, 2019
  36. 1/5 sequencer: update `total_nr' when adding an item to a todo listAlban Gruin, Nov 23, 2019
  37. 4/5 rebase: fill `squash_onto' in get_replay_opts()Alban Gruin, Nov 23, 2019
  38. 5/5 sequencer: directly call pick_commits() from complete_action()Alban Gruin, Nov 23, 2019
  39. 3/5 sequencer: move the code writing total_nr on the disk to a new functionAlban Gruin, Nov 23, 2019
  40. 2/5 sequencer: update `done_nr' when skipping commands in a todo listAlban Gruin, Nov 23, 2019
  41. 0/5 Use complete_action's todo list to do the rebaseAlban Gruin, Nov 24, 2019
  42. 1/5 sequencer: update `total_nr' when adding an item to a todo listAlban Gruin, Nov 24, 2019
  43. 2/5 sequencer: update `done_nr' when skipping commands in a todo listAlban Gruin, Nov 24, 2019
  44. 4/5 rebase: fill `squash_onto' in get_replay_opts()Alban Gruin, Nov 24, 2019
  45. Jonathan TanNov 26, 2019
  46. 3/5 sequencer: move the code writing total_nr on the disk to a new functionAlban Gruin, Nov 24, 2019
  47. 5/5 sequencer: directly call pick_commits() from complete_action()Alban Gruin, Nov 24, 2019
  48. Jonathan TanNov 26, 2019
  49. Alban GruinNov 27, 2019
  50. Alban GruinNov 27, 2019

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.