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

[PATCH 3/6] revision: factor out add_parent()

From
René Scharfe <l.s.r@web.de>
Date
Sep 15, 2022, 14:52 UTC
Message-ID
<b115f148-937b-5957-bfb7-930c02f446fb@web.de>
In-Reply-To
<ba6eea28-fb3a-b376-2529-351727c02f1a@web.de>

Split out the addition of a single parent into a helper. We'll use it in the next commit.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 revision.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/revision.c b/revision.c
index 4f896b4992..14cb73e508 100644
--- a/revision.c
+++ b/revision.c
@@ -1847,19 +1847,27 @@ static struct commit *get_commit(struct rev_info *revs, const char *arg_)
 	return (struct commit *)it;
 }

-static int add_parents_only(struct rev_info *revs, const char *arg_, int flags,
-			    int exclude_parent)
+static void add_parent(struct rev_info *revs, struct object *parent,
+		       const char *arg_, int flags)
 {
-	struct object *it;
-	struct commit *commit = get_commit(revs, arg_);
-	struct commit_list *parents;
-	int parent_number;
 	const char *arg = arg_;

 	if (*arg == '^') {
 		flags ^= UNINTERESTING | BOTTOM;
 		arg++;
 	}
+	parent->flags |= flags;
+	add_rev_cmdline(revs, parent, arg_, REV_CMD_PARENTS_ONLY, flags);
+	add_pending_object(revs, parent, arg);
+}
+
+static int add_parents_only(struct rev_info *revs, const char *arg_, int flags,
+			    int exclude_parent)
+{
+	struct commit *commit = get_commit(revs, arg_);
+	struct commit_list *parents;
+	int parent_number;
+
 	if (!commit)
 		return 0;
 	if (exclude_parent &&
@@ -1871,10 +1879,7 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags,
 		if (exclude_parent && parent_number != exclude_parent)
 			continue;

-		it = &parents->item->object;
-		it->flags |= flags;
-		add_rev_cmdline(revs, it, arg_, REV_CMD_PARENTS_ONLY, flags);
-		add_pending_object(revs, it, arg);
+		add_parent(revs, &parents->item->object, arg_, flags);
 	}
 	return 1;
 }
--
2.37.3
Previous: René ScharfeNext: René Scharfe
Message 5 of 16 in “revision: fix order of revs for ^!”
  1. 0/6 revision: fix order of revs for ^!René Scharfe, Sep 15, 2022
  2. 1/6 revision: use strtol_i() for exclude_parentRené Scharfe, Sep 15, 2022
  3. Chris TorekSep 17, 2022
  4. 2/6 revision: factor out get_commit()René Scharfe, Sep 15, 2022
  5. 3/6 revision: factor out add_parent()René Scharfe, Sep 15, 2022
  6. 4/6 revision: factor out add_parents()René Scharfe, Sep 15, 2022
  7. 5/6 revision: rename add_parents_only() to add_nth_parent()René Scharfe, Sep 15, 2022
  8. 6/6 revision: add parents after child for ^!René Scharfe, Sep 15, 2022
  9. Junio C HamanoSep 15, 2022
  10. René ScharfeSep 16, 2022
  11. Junio C HamanoSep 16, 2022
  12. René ScharfeSep 18, 2022
  13. 0/3 diff: support ^! for mergesRené Scharfe, Oct 1, 2022
  14. 1/3 revision: use strtol_i() for exclude_parentRené Scharfe, Oct 1, 2022
  15. 2/3 revisions.txt: unspecify order of resolved parts of ^!René Scharfe, Oct 1, 2022
  16. 3/3 diff: support ^! for mergesRené Scharfe, Oct 1, 2022

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.