From: Pablo Sabater <pabloosabaterr@gmail.com>
To: pabloosabaterr@gmail.com
Cc: ayu.chandekar@gmail.com, chandrapratap3519@gmail.com,
christian.couder@gmail.com, git@vger.kernel.org,
gitster@pobox.com, jltobler@gmail.com, karthik.188@gmail.com,
krka@spotify.com, mroik@delayed.space, peff@peff.net,
phillip.wood@dunelm.org.uk, siddharthasthana31@gmail.com
Subject: [PATCH v12 2/7] revision: add next_commit_to_show()
Date: Tue, 14 Jul 2026 14:09:33 +0200 [thread overview]
Message-ID: <20260714-ps-pre-commit-indent-v12-2-d50938e006df@gmail.com> (raw)
In-Reply-To: <20260714-ps-pre-commit-indent-v12-0-d50938e006df@gmail.com>
get_revision() gets its commits from two sources depending on the mode:
1. Normally it gets the commits from get_revision_internal().
2. --max-count-oldest which was introduced at bb4ce23284 (revision.c:
implement --max-count-oldest, 2026-05-19) gets the commits by popping
from a saved list at revs->commits marking SHOWN and CHILD_SHOWN on
each popped commit.
Extract the choice logic into a helper, next_commit_to_show(), which
returns the next commit regardless of the source it comes from.
This has no change in behavior. The helper is needed in a subsequent
commit that pre-fetches two commits into a buffer for lookahead purposes
and needs to pre-fetch from the same source.
The --reverse branch keeps its own pop loop. Using the helper for
--reverse would additionally set SHOWN and CHILD_SHOWN which is not
desired and a behavior change.
Signed-off-by: Pablo Sabater <pabloosabaterr@gmail.com>
---
revision.c | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/revision.c b/revision.c
index 0c95edef59..288935943f 100644
--- a/revision.c
+++ b/revision.c
@@ -4658,12 +4658,34 @@ static void retrieve_oldest_commits(struct rev_info *revs,
commit_list_insert(c, queue);
}
+/*
+ * Returns the next commit that will be shown, regardless of whether it comes
+ * directly from the revision walk or from the list saved by the staged output
+ * of --max-count-oldest.
+ */
+static struct commit *next_commit_to_show(struct rev_info *revs)
+{
+ struct commit *c;
+ struct commit_list *p;
+
+ if (!revs->max_count_stage)
+ return get_revision_internal(revs);
+
+ c = pop_commit(&revs->commits);
+ if (c) {
+ c->object.flags |= SHOWN;
+ if (!(c->object.flags & BOUNDARY))
+ for (p = c->parents; p; p = p->next)
+ p->item->object.flags |= CHILD_SHOWN;
+ }
+ return c;
+}
+
struct commit *get_revision(struct rev_info *revs)
{
struct commit *c;
struct commit_list *reversed;
struct commit_list *queue = NULL;
- struct commit_list *p;
if (revs->max_count_type == 1 && !revs->max_count_stage) {
retrieve_oldest_commits(revs, &queue);
@@ -4693,17 +4715,7 @@ struct commit *get_revision(struct rev_info *revs)
return c;
}
- if (revs->max_count_stage) {
- c = pop_commit(&revs->commits);
- if (c) {
- c->object.flags |= SHOWN;
- if (!(c->object.flags & BOUNDARY))
- for (p = c->parents; p; p = p->next)
- p->item->object.flags |= CHILD_SHOWN;
- }
- } else {
- c = get_revision_internal(revs);
- }
+ c = next_commit_to_show(revs);
if (c && revs->graph)
graph_update(revs->graph, c);
--
2.54.0
next prev parent reply other threads:[~2026-07-14 12:09 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 21:17 [GSoC RFC PATCH 0/1] graph: add indentation for commits preceded by a root Pablo Sabater
2026-04-02 21:17 ` [GSoC RFC PATCH 1/1] " Pablo Sabater
2026-04-03 17:55 ` Junio C Hamano
2026-04-03 18:07 ` Pablo
2026-04-03 5:04 ` [GSoC RFC PATCH 0/1] " Junio C Hamano
2026-04-03 8:25 ` Pablo
2026-04-04 9:24 ` [GSoC RFC PATCH v2 0/1] graph: add indentation for commits preceded by a parentless commit Pablo Sabater
2026-04-04 9:24 ` [GSoC RFC PATCH v2 1/1] " Pablo Sabater
2026-04-10 16:25 ` [GSoC RFC PATCH v2 0/1] " Pablo
2026-04-10 16:54 ` Junio C Hamano
2026-04-27 10:28 ` [GSoC PATCH v3 " Pablo Sabater
2026-04-27 10:28 ` [GSoC PATCH v3 1/1] " Pablo Sabater
2026-05-13 23:02 ` Jeff King
2026-05-14 10:19 ` Pablo Sabater
2026-04-27 10:35 ` [GSoC PATCH v3 0/1] " Pablo
2026-06-12 13:48 ` [PATCH v4 0/2] graph: indent visual roots in graph Pablo Sabater
2026-06-12 13:48 ` [PATCH v4 1/2] lib-log-graph: move check_graph function Pablo Sabater
2026-06-12 13:48 ` [PATCH v4 2/2] graph: indent visual root in graph Pablo Sabater
2026-06-13 3:01 ` [PATCH v4 0/2] graph: indent visual roots " Junio C Hamano
2026-06-13 19:09 ` [PATCH v5 " Pablo Sabater
2026-06-13 19:09 ` [PATCH v5 1/2] lib-log-graph: move check_graph function Pablo Sabater
2026-06-13 19:09 ` [PATCH v5 2/2] graph: indent visual root in graph Pablo Sabater
2026-06-14 4:05 ` Junio C Hamano
2026-06-14 5:28 ` Pablo Sabater
2026-06-15 15:42 ` Junio C Hamano
2026-06-16 13:06 ` Pablo Sabater
2026-06-16 16:36 ` Junio C Hamano
2026-06-17 20:27 ` Jeff King
2026-06-18 12:42 ` Pablo Sabater
2026-06-18 13:31 ` Junio C Hamano
2026-06-18 16:05 ` Jeff King
2026-06-18 16:07 ` Jeff King
2026-06-19 7:34 ` Kristofer Karlsson
2026-06-21 18:05 ` Jeff King
2026-06-22 8:29 ` Kristofer Karlsson
2026-06-17 10:33 ` [PATCH v5 0/2] graph: indent visual roots " Chandra Pratap
2026-06-20 10:11 ` [PATCH v6 0/3] " Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 1/3] lib-log-graph: move check_graph function Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 2/3] revision: add peek functions for lookahead Pablo Sabater
2026-06-20 10:18 ` Pablo Sabater
2026-06-20 14:56 ` Junio C Hamano
2026-06-20 15:15 ` Junio C Hamano
2026-06-21 1:48 ` Junio C Hamano
2026-06-21 6:42 ` Chandra Pratap
2026-06-22 8:28 ` Kristofer Karlsson
2026-06-29 21:56 ` Junio C Hamano
2026-06-29 23:29 ` Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 3/3] graph: indent visual root in graph Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 0/3] graph: indent visual roots " Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 1/3] lib-log-graph: move check_graph function Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 2/3] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-06 9:49 ` Chandra Pratap
2026-07-06 13:44 ` Kristofer Karlsson
2026-07-06 15:33 ` Chandra Pratap
2026-07-07 6:31 ` Pablo Sabater
2026-07-07 18:12 ` Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 3/3] graph: indent visual root in graph Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 0/4] graph: indent visual roots " Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 1/4] lib-log-graph: move check_graph function Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 2/4] revision: add next_commit_to_show() Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 3/4] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 4/4] graph: indent visual root in graph Pablo Sabater
2026-07-10 18:07 ` Mirko Faina
2026-07-10 20:29 ` Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 0/4] graph: indent visual roots " Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 1/4] lib-log-graph: move check_graph function Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 2/4] revision: add next_commit_to_show() Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 3/4] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 4/4] graph: indent visual root in graph Pablo Sabater
2026-07-11 14:15 ` [PATCH v9 0/4] graph: indent visual roots " Mirko Faina
2026-07-11 15:41 ` Pablo Sabater
2026-07-11 16:25 ` Mirko Faina
2026-07-12 5:56 ` Chandra Pratap
2026-07-12 13:10 ` Mirko Faina
2026-07-12 13:12 ` Mirko Faina
2026-07-12 16:59 ` Pablo Sabater
2026-07-12 19:33 ` Mirko Faina
2026-07-13 7:41 ` Chandra Pratap
2026-07-13 10:44 ` [PATCH v10 0/7] " Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 2/7] revision: add next_commit_to_show() Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-07-13 14:06 ` Mirko Faina
2026-07-13 16:16 ` Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 0/7] graph: indent visual roots in graph Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 2/7] revision: add next_commit_to_show() Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-07-14 10:19 ` Chandra Pratap
2026-07-14 11:47 ` Pablo Sabater
2026-07-13 20:28 ` [PATCH v11 0/7] graph: indent visual roots in graph Junio C Hamano
2026-07-13 20:51 ` Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 " Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-14 12:09 ` Pablo Sabater [this message]
2026-07-14 12:09 ` [PATCH v12 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-05-14 15:15 ` [GSoC RFC PATCH 0/1] graph: add indentation for commits preceded by a root Phillip Wood
2026-05-14 17:45 ` Pablo Sabater
2026-05-15 9:33 ` Phillip Wood
2026-05-17 6:31 ` Chandra Pratap
2026-05-18 13:26 ` Pablo Sabater
2026-05-19 0:03 ` Junio C Hamano
2026-05-19 5:59 ` Pablo Sabater
2026-06-10 15:21 ` Junio C Hamano
2026-06-10 15:28 ` Pablo Sabater
2026-05-19 10:39 ` Chandra Pratap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260714-ps-pre-commit-indent-v12-2-d50938e006df@gmail.com \
--to=pabloosabaterr@gmail.com \
--cc=ayu.chandekar@gmail.com \
--cc=chandrapratap3519@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=karthik.188@gmail.com \
--cc=krka@spotify.com \
--cc=mroik@delayed.space \
--cc=peff@peff.net \
--cc=phillip.wood@dunelm.org.uk \
--cc=siddharthasthana31@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.