mmbuffer_t result = { NULL };
int status;
- read_mmblob(&base_file, base->hash);
- read_mmblob(&our_file, ours->hash);
- read_mmblob(&their_file, theirs->hash);
+ read_mmblob(&base_file, base);
+ read_mmblob(&our_file, ours);
+ read_mmblob(&their_file, theirs);
status = ll_merge(&result, path,
&base_file, "base",
&our_file, "ours",
if (is_null_oid(&threeway[1]) || is_null_oid(&threeway[2]))
return error(_("path '%s' does not have necessary versions"), path);
- read_mmblob(&ancestor, threeway[0].hash);
- read_mmblob(&ours, threeway[1].hash);
- read_mmblob(&theirs, threeway[2].hash);
+ read_mmblob(&ancestor, &threeway[0]);
+ read_mmblob(&ours, &threeway[1]);
+ read_mmblob(&theirs, &threeway[2]);
/*
* NEEDSWORK: re-create conflicts from merges with
name2 = mkpathdup("%s", branch2);
}
- read_mmblob(&orig, one->oid.hash);
- read_mmblob(&src1, a->oid.hash);
- read_mmblob(&src2, b->oid.hash);
+ read_mmblob(&orig, &one->oid);
+ read_mmblob(&src1, &a->oid);
+ read_mmblob(&src2, &b->oid);
merge_status = ll_merge(result_buf, a->path, &orig, base_name,
&src1, name1, &src2, name2, &ll_opts);
mmfile_t base, local, remote;
int status;
- read_mmblob(&base, p->base.hash);
- read_mmblob(&local, p->local.hash);
- read_mmblob(&remote, p->remote.hash);
+ read_mmblob(&base, &p->base);
+ read_mmblob(&local, &p->local);
+ read_mmblob(&remote, &p->remote);
status = ll_merge(&result_buf, oid_to_hex(&p->obj), &base, NULL,
&local, o->local_ref, &remote, o->remote_ref, NULL);
return 0;
}
-void read_mmblob(mmfile_t *ptr, const unsigned char *sha1)
+void read_mmblob(mmfile_t *ptr, const struct object_id *oid)
{
unsigned long size;
enum object_type type;
- if (!hashcmp(sha1, null_sha1)) {
+ if (!oidcmp(oid, &null_oid)) {
ptr->ptr = xstrdup("");
ptr->size = 0;
return;
}
- ptr->ptr = read_sha1_file(sha1, &type, &size);
+ ptr->ptr = read_sha1_file(oid->hash, &type, &size);
if (!ptr->ptr || type != OBJ_BLOB)
- die("unable to read blob object %s", sha1_to_hex(sha1));
+ die("unable to read blob object %s", oid_to_hex(oid));
ptr->size = size;
}
#ifndef XDIFF_INTERFACE_H
#define XDIFF_INTERFACE_H
+#include "cache.h"
#include "xdiff/xdiff.h"
/*
int *ob, int *on,
int *nb, int *nn);
int read_mmfile(mmfile_t *ptr, const char *filename);
-void read_mmblob(mmfile_t *ptr, const unsigned char *sha1);
+void read_mmblob(mmfile_t *ptr, const struct object_id *oid);
int buffer_is_binary(const char *ptr, unsigned long size);
extern void xdiff_set_find_func(xdemitconf_t *xecfg, const char *line, int cflags);