]> git.ipfire.org Git - thirdparty/git.git/blobdiff - unpack-trees.h
unpack-trees: also allow get_progress() to work on a different index
[thirdparty/git.git] / unpack-trees.h
index ca94a421a5dd8451ccf4ef0ec1aa35ec25d612dc..0f7424aec614f9972df8e1b0521f60a4dd34bdf2 100644 (file)
@@ -6,7 +6,7 @@
 #include "string-list.h"
 #include "tree-walk.h"
 
-#define MAX_UNPACK_TREES 8
+#define MAX_UNPACK_TREES MAX_TRAVERSE_TREES
 
 struct cache_entry;
 struct unpack_trees_options;
@@ -22,11 +22,15 @@ enum unpack_trees_error_types {
        ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN,
        ERROR_WOULD_LOSE_UNTRACKED_REMOVED,
        ERROR_BIND_OVERLAP,
-       ERROR_SPARSE_NOT_UPTODATE_FILE,
-       ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN,
-       ERROR_WOULD_LOSE_ORPHANED_REMOVED,
        ERROR_WOULD_LOSE_SUBMODULE,
-       NB_UNPACK_TREES_ERROR_TYPES
+
+       NB_UNPACK_TREES_ERROR_TYPES,
+
+       WARNING_SPARSE_NOT_UPTODATE_FILE,
+       WARNING_SPARSE_UNMERGED_FILE,
+       WARNING_SPARSE_ORPHANED_NOT_OVERWRITTEN,
+
+       NB_UNPACK_TREES_WARNING_TYPES,
 };
 
 /*
@@ -59,20 +63,19 @@ struct unpack_trees_options {
                     quiet,
                     exiting_early,
                     show_all_errors,
-                    dry_run,
-                    keep_pattern_list;
+                    dry_run;
        const char *prefix;
        int cache_bottom;
        struct dir_struct *dir;
        struct pathspec *pathspec;
        merge_fn_t fn;
-       const char *msgs[NB_UNPACK_TREES_ERROR_TYPES];
+       const char *msgs[NB_UNPACK_TREES_WARNING_TYPES];
        struct argv_array 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_ERROR_TYPES];
+       struct string_list unpack_rejects[NB_UNPACK_TREES_WARNING_TYPES];
 
        int head_idx;
        int merge_size;
@@ -90,6 +93,15 @@ struct unpack_trees_options {
 int unpack_trees(unsigned n, struct tree_desc *t,
                 struct unpack_trees_options *options);
 
+enum update_sparsity_result {
+       UPDATE_SPARSITY_SUCCESS = 0,
+       UPDATE_SPARSITY_WARNINGS = 1,
+       UPDATE_SPARSITY_INDEX_UPDATE_FAILURES = -1,
+       UPDATE_SPARSITY_WORKTREE_UPDATE_FAILURES = -2
+};
+
+enum update_sparsity_result update_sparsity(struct unpack_trees_options *options);
+
 int verify_uptodate(const struct cache_entry *ce,
                    struct unpack_trees_options *o);