| #ifndef ENTRY_H |
| #define ENTRY_H |
| |
| #include "cache.h" |
| #include "convert.h" |
| |
| struct checkout { |
| struct index_state *istate; |
| const char *base_dir; |
| int base_dir_len; |
| struct delayed_checkout *delayed_checkout; |
| struct checkout_metadata meta; |
| unsigned force:1, |
| quiet:1, |
| not_new:1, |
| clone:1, |
| refresh_cache:1; |
| }; |
| #define CHECKOUT_INIT { NULL, "" } |
| |
| #define TEMPORARY_FILENAME_LENGTH 25 |
| /* |
| * Write the contents from ce out to the working tree. |
| * |
| * When topath[] is not NULL, instead of writing to the working tree |
| * file named by ce, a temporary file is created by this function and |
| * its name is returned in topath[], which must be able to hold at |
| * least TEMPORARY_FILENAME_LENGTH bytes long. |
| */ |
| int checkout_entry(struct cache_entry *ce, const struct checkout *state, |
| char *topath, int *nr_checkouts); |
| |
| void enable_delayed_checkout(struct checkout *state); |
| int finish_delayed_checkout(struct checkout *state, int *nr_checkouts); |
| |
| /* |
| * Unlink the last component and schedule the leading directories for |
| * removal, such that empty directories get removed. |
| */ |
| void unlink_entry(const struct cache_entry *ce); |
| |
| #endif /* ENTRY_H */ |