]> git.ipfire.org Git - thirdparty/git.git/commitdiff
merge-ort: copy a few small helper functions from merge-recursive.c
authorElijah Newren <newren@gmail.com>
Wed, 16 Dec 2020 22:28:00 +0000 (22:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Dec 2020 05:56:39 +0000 (21:56 -0800)
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>
merge-ort.c

index 414e7b7eeac087b7a9f435117f49d20cc1ae71a3..6eac0cef491dbb1466f58083aeabced1ed0bd06e 100644 (file)
 #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 */