diff options
Diffstat (limited to 'unpack-trees.h')
-rw-r--r-- | unpack-trees.h | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/unpack-trees.h b/unpack-trees.h index 71ffb7e..5867e26 100644 --- a/unpack-trees.h +++ b/unpack-trees.h @@ -1,12 +1,13 @@ #ifndef UNPACK_TREES_H #define UNPACK_TREES_H -#include "cache.h" +#include "convert.h" +#include "read-cache-ll.h" #include "strvec.h" #include "string-list.h" #include "tree-walk.h" -#define MAX_UNPACK_TREES MAX_TRAVERSE_TREES +#define MAX_UNPACK_TREES 8 struct cache_entry; struct unpack_trees_options; @@ -19,6 +20,7 @@ enum unpack_trees_error_types { ERROR_WOULD_OVERWRITE = 0, ERROR_NOT_UPTODATE_FILE, ERROR_NOT_UPTODATE_DIR, + ERROR_CWD_IN_THE_WAY, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, ERROR_WOULD_LOSE_UNTRACKED_REMOVED, ERROR_BIND_OVERLAP, @@ -58,45 +60,54 @@ struct unpack_trees_options { preserve_ignored, clone, index_only, - nontrivial_merge, trivial_merges_only, verbose_update, aggressive, skip_unmerged, initial_checkout, diff_index_cached, - debug_unpack, skip_sparse_checkout, quiet, exiting_early, - show_all_errors, - dry_run; + dry_run, + skip_cache_tree_update; enum unpack_trees_reset_type reset; const char *prefix; - int cache_bottom; + const char *super_prefix; struct pathspec *pathspec; merge_fn_t fn; - const char *msgs[NB_UNPACK_TREES_WARNING_TYPES]; - struct strvec msgs_to_free; - /* - * Store error messages in an array, each case - * corresponding to a error message type - */ - struct string_list unpack_rejects[NB_UNPACK_TREES_WARNING_TYPES]; int head_idx; - int merge_size; - struct cache_entry *df_conflict_entry; + struct cache_entry *df_conflict_entry; /* output only */ void *unpack_data; struct index_state *dst_index; struct index_state *src_index; - struct index_state result; - struct pattern_list *pl; /* for internal use */ - struct dir_struct *dir; /* for internal use only */ struct checkout_metadata meta; + + struct unpack_trees_options_internal { + unsigned int nontrivial_merge, + show_all_errors, + debug_unpack; /* used by read-tree debugging */ + + int merge_size; /* used by read-tree debugging */ + int cache_bottom; + const char *msgs[NB_UNPACK_TREES_WARNING_TYPES]; + struct strvec msgs_to_free; + + /* + * Store error messages in an array, each case + * corresponding to a error message type + */ + struct string_list unpack_rejects[NB_UNPACK_TREES_WARNING_TYPES]; + + struct index_state result; + + struct pattern_list *pl; + struct dir_struct *dir; + } internal; }; int unpack_trees(unsigned n, struct tree_desc *t, @@ -109,7 +120,8 @@ enum update_sparsity_result { UPDATE_SPARSITY_WORKTREE_UPDATE_FAILURES = -2 }; -enum update_sparsity_result update_sparsity(struct unpack_trees_options *options); +enum update_sparsity_result update_sparsity(struct unpack_trees_options *options, + struct pattern_list *pl); int verify_uptodate(const struct cache_entry *ce, struct unpack_trees_options *o); |