8 struct index_state
*istate
;
11 struct delayed_checkout
*delayed_checkout
;
12 struct checkout_metadata meta
;
19 #define CHECKOUT_INIT { .base_dir = "" }
21 #define TEMPORARY_FILENAME_LENGTH 25
23 * Write the contents from ce out to the working tree.
25 * When topath[] is not NULL, instead of writing to the working tree
26 * file named by ce, a temporary file is created by this function and
27 * its name is returned in topath[], which must be able to hold at
28 * least TEMPORARY_FILENAME_LENGTH bytes long.
30 * With checkout_entry_ca(), callers can optionally pass a preloaded
31 * conv_attrs struct (to avoid reloading it), when ce refers to a
32 * regular file. If ca is NULL, the attributes will be loaded
33 * internally when (and if) needed.
35 int checkout_entry_ca(struct cache_entry
*ce
, struct conv_attrs
*ca
,
36 const struct checkout
*state
, char *topath
,
38 static inline int checkout_entry(struct cache_entry
*ce
,
39 const struct checkout
*state
, char *topath
,
42 return checkout_entry_ca(ce
, NULL
, state
, topath
, nr_checkouts
);
45 void enable_delayed_checkout(struct checkout
*state
);
46 int finish_delayed_checkout(struct checkout
*state
, int show_progress
);
49 * Unlink the last component and schedule the leading directories for
50 * removal, such that empty directories get removed.
52 void unlink_entry(const struct cache_entry
*ce
);
54 void *read_blob_entry(const struct cache_entry
*ce
, size_t *size
);
55 int fstat_checkout_output(int fd
, const struct checkout
*state
, struct stat
*st
);
56 void update_ce_after_write(const struct checkout
*state
, struct cache_entry
*ce
,