Merge results need to be written to the worktree, of course, but we don't necessarily need object entries for them, especially if they contain conflict markers. Use pretend_sha1_file() to create fake blobs to pass to make_cache_entry() and checkout_entry() instead. Signed-off-by: Rene Scharfe <l.s.r@xxxxxx> --- builtin/checkout.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/builtin/checkout.c b/builtin/checkout.c index 1624eed7e7..f51c15af9f 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -215,7 +215,7 @@ static int checkout_merged(int pos, const struct checkout *state) /* * NEEDSWORK: - * There is absolutely no reason to write this as a blob object + * There is absolutely no reason to build a fake blob object * and create a phony cache entry. This hack is primarily to get * to the write_entry() machinery that massages the contents to * work-tree format and writes out which only allows it for a @@ -225,8 +225,8 @@ static int checkout_merged(int pos, const struct checkout *state) * (it also writes the merge result to the object database even * when it may contain conflicts). */ - if (write_sha1_file(result_buf.ptr, result_buf.size, - blob_type, oid.hash)) + if (pretend_sha1_file(result_buf.ptr, result_buf.size, + OBJ_BLOB, oid.hash)) die(_("Unable to add merge result for '%s'"), path); free(result_buf.ptr); ce = make_cache_entry(mode, oid.hash, path, 2, 0); -- 2.13.0