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

[PATCH v6 23/28] sequencer: store progress information

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Aug 30, 2013, 05:56 UTC
Message-ID
<1377842182-18724-24-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1377842182-18724-1-git-send-email-felipe.contreras@gmail.com>
So that it can be used by shell prompts.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 sequencer.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index 453e4a4..c855dd4 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -21,6 +21,7 @@
 const char sign_off_header[] = "Signed-off-by: ";
 static const char cherry_picked_prefix[] = "(cherry picked from commit ";
 static struct rewritten rewritten;
+static int total;
 
 static void finish(struct replay_opts *opts)
 {
@@ -877,8 +878,10 @@ static void walk_revs_populate_todo(struct commit_list **todo_list,
 	prepare_revs(opts);
 
 	next = todo_list;
-	while ((commit = get_revision(opts->revs)))
+	while ((commit = get_revision(opts->revs))) {
 		next = commit_list_append(commit, next);
+		total++;
+	}
 }
 
 static int create_seq_dir(void)
@@ -1036,6 +1039,21 @@ static void save_opts(struct replay_opts *opts)
 	}
 }
 
+static void save_info(int total, int step)
+{
+	FILE *f;
+	f = fopen(git_path("sequencer/total"), "w");
+	if (f) {
+		fprintf(f, "%i\n", total);
+		fclose(f);
+	}
+	f = fopen(git_path("sequencer/step"), "w");
+	if (f) {
+		fprintf(f, "%i\n", step);
+		fclose(f);
+	}
+}
+
 static int pick_commits(struct commit_list *todo_list, struct replay_opts *opts)
 {
 	struct commit_list *cur;
@@ -1051,8 +1069,10 @@ static int pick_commits(struct commit_list *todo_list, struct replay_opts *opts)
 		save_todo(cur, opts);
 		res = do_pick_commit(cur->item, opts);
 		if (res) {
-			if (opts->action == REPLAY_PICK)
+			if (opts->action == REPLAY_PICK) {
 				store_rewritten(&rewritten, git_path(SEQ_REWR_FILE));
+				save_info(total, rewritten.nr + 1);
+			}
 			return res;
 		}
 	}
-- 
1.8.4-fc
Previous: Felipe ContrerasNext: Felipe Contreras
Message 24 of 29 in “Massive improvents to rebase and cherry-pick”
  1. 00/28 Massive improvents to rebase and cherry-pickFelipe Contreras, Aug 30, 2013
  2. 01/28 cherry-pick: don't barf when there's nothing to doFelipe Contreras, Aug 30, 2013
  3. 02/28 cherry-pick: add --skip-empty optionFelipe Contreras, Aug 30, 2013
  4. 03/28 revert/cherry-pick: add --quiet optionFelipe Contreras, Aug 30, 2013
  5. 04/28 revert/cherry-pick: add --skip optionFelipe Contreras, Aug 30, 2013
  6. 05/28 builtin: add rewrite helperFelipe Contreras, Aug 30, 2013
  7. 06/28 cherry-pick: store rewritten commitsFelipe Contreras, Aug 30, 2013
  8. 07/28 cherry-pick: don't store skipped commitFelipe Contreras, Aug 30, 2013
  9. 08/28 builtin: move run_rewrite_hook() to rewrite.cFelipe Contreras, Aug 30, 2013
  10. 09/28 builtin: rewrite: add copy_rewrite_notes()Felipe Contreras, Aug 30, 2013
  11. 10/28 cherry-pick: add --action-name optionFelipe Contreras, Aug 30, 2013
  12. 11/28 cherry-pick: copy notes and run hooksFelipe Contreras, Aug 30, 2013
  13. 12/28 cherry-pick: remember rerere-autoupdateFelipe Contreras, Aug 30, 2013
  14. 13/28 rebase: split the cherry-pick stuffFelipe Contreras, Aug 30, 2013
  15. 14/28 rebase: cherry-pick: fix mode storageFelipe Contreras, Aug 30, 2013
  16. 15/28 rebase: cherry-pick: fix sequence continuationFelipe Contreras, Aug 30, 2013
  17. 16/28 rebase: cherry-pick: fix abort of cherry modeFelipe Contreras, Aug 30, 2013
  18. 17/28 rebase: cherry-pick: fix command invocationsFelipe Contreras, Aug 30, 2013
  19. 18/28 rebase: cherry-pick: fix status messagesFelipe Contreras, Aug 30, 2013
  20. 19/28 rebase: cherry-pick: automatically commit stageFelipe Contreras, Aug 30, 2013
  21. 20/28 rebase: cherry-pick: set correct action-nameFelipe Contreras, Aug 30, 2013
  22. 21/28 rebase: trivial cleanupFelipe Contreras, Aug 30, 2013
  23. 22/28 t: rebase-autostash: fix setupFelipe Contreras, Aug 30, 2013
  24. 23/28 sequencer: store progress informationFelipe Contreras, Aug 30, 2013
  25. 24/28 prompt: parse cherry-pick rebase modeFelipe Contreras, Aug 30, 2013
  26. 25/28 rebase: use 'cherrypick' mode instead of 'am'Felipe Contreras, Aug 30, 2013
  27. 26/28 rebase: cherry-pick: add merge optionsFelipe Contreras, Aug 30, 2013
  28. 27/28 rebase: remove merge modeFelipe Contreras, Aug 30, 2013
  29. 28/28 rebase: cherry-pick: add copyrightFelipe Contreras, Aug 30, 2013

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.