X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=entry.c;h=00b49033668160574c35555293c0c755cbafaeaa;hb=3bab5d56259722843359702bc27111475437ad2a;hp=53380bb614c19e82edfb45049f1703b4a3b9c8a3;hpb=3ff6af7753287f2cac8261ae5184c3381373b836;p=thirdparty%2Fgit.git diff --git a/entry.c b/entry.c index 53380bb614..00b4903366 100644 --- a/entry.c +++ b/entry.c @@ -264,6 +264,9 @@ static int write_entry(struct cache_entry *ce, size_t newsize = 0; struct stat st; const struct submodule *sub; + struct checkout_metadata meta; + + clone_checkout_metadata(&meta, &state->meta, &ce->oid); if (ce_mode_s_ifmt == S_IFREG) { struct stream_filter *filter = get_stream_filter(state->istate, ce->name, @@ -315,13 +318,13 @@ static int write_entry(struct cache_entry *ce, */ if (dco && dco->state != CE_NO_DELAY) { ret = async_convert_to_working_tree(state->istate, ce->name, new_blob, - size, &buf, dco); + size, &buf, &meta, dco); if (ret && string_list_has_string(&dco->paths, ce->name)) { free(new_blob); goto delayed; } } else - ret = convert_to_working_tree(state->istate, ce->name, new_blob, size, &buf); + ret = convert_to_working_tree(state->istate, ce->name, new_blob, size, &buf, &meta); if (ret) { free(new_blob);