blame: refactor porcelain output
[gitweb.git] / builtin / merge-tree.c
index fc00d794d641c146023a78d7d8e4143f0fdac302..897a563bc6662e108c29656d633b7400384154f9 100644 (file)
@@ -1,8 +1,9 @@
-#include "cache.h"
+#include "builtin.h"
 #include "tree-walk.h"
 #include "xdiff-interface.h"
 #include "blob.h"
 #include "exec_cmd.h"
+#include "merge-file.h"
 
 static const char merge_tree_usage[] = "git merge-tree <base-tree> <branch1> <branch2>";
 static int resolve_directories = 1;
@@ -54,12 +55,11 @@ static const char *explanation(struct merge_list *entry)
        return "removed in remote";
 }
 
-extern void *merge_file(const char *, struct blob *, struct blob *, struct blob *, unsigned long *);
-
 static void *result(struct merge_list *entry, unsigned long *size)
 {
        enum object_type type;
        struct blob *base, *our, *their;
+       const char *path = entry->path;
 
        if (!entry->stage)
                return read_sha1_file(entry->blob->object.sha1, &type, size);
@@ -76,7 +76,7 @@ static void *result(struct merge_list *entry, unsigned long *size)
        their = NULL;
        if (entry)
                their = entry->blob;
-       return merge_file(entry->path, base, our, their, size);
+       return merge_file(path, base, our, their, size);
 }
 
 static void *origin(struct merge_list *entry, unsigned long *size)