summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Elijah Newren <newren@gmail.com>2020-12-16 22:28:00 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-12-16 21:56:39 -0800
commit4296d8f17d45465c9712fab099a1a6787a8e9913 (patch)
tree4249eb4ebb468246cfba73153ca2242c822f841a
parentcommit: move reverse_commit_list() from merge-recursive (diff)
downloadtgif-4296d8f17d45465c9712fab099a1a6787a8e9913.tar.xz
merge-ort: copy a few small helper functions from merge-recursive.c
In a subsequent commit, we will implement the traditional recursiveness that gave merge-recursive its name, namely merging non-unique merge-bases to come up with a single virtual merge base. Copy a few helper functions from merge-recursive.c that we will use in the implementation. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--merge-ort.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/merge-ort.c b/merge-ort.c
index 414e7b7eea..6eac0cef49 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -17,8 +17,10 @@
#include "cache.h"
#include "merge-ort.h"
+#include "alloc.h"
#include "blob.h"
#include "cache-tree.h"
+#include "commit.h"
#include "commit-reach.h"
#include "diff.h"
#include "diffcore.h"
@@ -1348,6 +1350,24 @@ void merge_finalize(struct merge_options *opt,
/*** Function Grouping: helper functions for merge_incore_*() ***/
+static inline void set_commit_tree(struct commit *c, struct tree *t)
+{
+ c->maybe_tree = t;
+}
+
+MAYBE_UNUSED
+static struct commit *make_virtual_commit(struct repository *repo,
+ struct tree *tree,
+ const char *comment)
+{
+ struct commit *commit = alloc_commit_node(repo);
+
+ set_merge_remote_desc(commit, comment, (struct object *)commit);
+ set_commit_tree(commit, tree);
+ commit->object.parsed = 1;
+ return commit;
+}
+
static void merge_start(struct merge_options *opt, struct merge_result *result)
{
/* Sanity checks on opt */