Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/merge-tree.c | 2 +- merge-blobs.c | 15 +++++++++++---- merge-blobs.h | 7 +++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index f8023bae1e..f32941fdab 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -76,7 +76,7 @@ static void *result(struct merge_list *entry, unsigned long *size) their = NULL; if (entry) their = entry->blob; - return merge_blobs(path, base, our, their, size); + return merge_blobs(&the_index, path, base, our, their, size); } static void *origin(struct merge_list *entry, unsigned long *size) diff --git a/merge-blobs.c b/merge-blobs.c index 668fb2e05d..ee0a0e90c9 100644 --- a/merge-blobs.c +++ b/merge-blobs.c @@ -29,7 +29,12 @@ static void free_mmfile(mmfile_t *f) free(f->ptr); } -static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our, mmfile_t *their, unsigned long *size) +static void *three_way_filemerge(struct index_state *istate, + const char *path, + mmfile_t *base, + mmfile_t *our, + mmfile_t *their, + unsigned long *size) { int merge_status; mmbuffer_t res; @@ -42,7 +47,7 @@ static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our */ merge_status = ll_merge(&res, path, base, NULL, our, ".our", their, ".their", - &the_index, NULL); + istate, NULL); if (merge_status < 0) return NULL; @@ -50,7 +55,9 @@ static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our return res.ptr; } -void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct blob *their, unsigned long *size) +void *merge_blobs(struct index_state *istate, const char *path, + struct blob *base, struct blob *our, + struct blob *their, unsigned long *size) { void *res = NULL; mmfile_t f1, f2, common; @@ -83,7 +90,7 @@ void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct common.ptr = xstrdup(""); common.size = 0; } - res = three_way_filemerge(path, &common, &f1, &f2, size); + res = three_way_filemerge(istate, path, &common, &f1, &f2, size); free_mmfile(&common); out_free_f2_f1: free_mmfile(&f2); diff --git a/merge-blobs.h b/merge-blobs.h index 62b569e472..cc31038b80 100644 --- a/merge-blobs.h +++ b/merge-blobs.h @@ -1,8 +1,11 @@ #ifndef MERGE_BLOBS_H #define MERGE_BLOBS_H -#include "blob.h" +struct blob; +struct index_state; -extern void *merge_blobs(const char *, struct blob *, struct blob *, struct blob *, unsigned long *); +extern void *merge_blobs(struct index_state *, const char *, + struct blob *, struct blob *, + struct blob *, unsigned long *); #endif /* MERGE_BLOBS_H */ -- 2.19.0.rc0.337.ge906d732e7