Code

unpack_trees: group error messages by type
[git.git] / unpack-trees.h
index 09e22522fb73657734d47fed437c4d72b394a24e..6e049b09977cf89eca87f5ef22e645dd2027e414 100644 (file)
@@ -13,13 +13,20 @@ enum unpack_trees_error_types {
        ERROR_WOULD_OVERWRITE = 0,
        ERROR_NOT_UPTODATE_FILE,
        ERROR_NOT_UPTODATE_DIR,
-       ERROR_WOULD_LOSE_UNTRACKED,
+       ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN,
+       ERROR_WOULD_LOSE_UNTRACKED_REMOVED,
        ERROR_BIND_OVERLAP,
        ERROR_SPARSE_NOT_UPTODATE_FILE,
-       ERROR_WOULD_LOSE_ORPHANED,
+       ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN,
+       ERROR_WOULD_LOSE_ORPHANED_REMOVED,
        NB_UNPACK_TREES_ERROR_TYPES
 };
 
+struct rejected_paths_list {
+       char *path;
+       struct rejected_paths_list *next;
+};
+
 struct unpack_trees_options {
        unsigned int reset,
                     merge,
@@ -34,12 +41,18 @@ struct unpack_trees_options {
                     diff_index_cached,
                     debug_unpack,
                     skip_sparse_checkout,
-                    gently;
+                    gently,
+                    show_all_errors;
        const char *prefix;
        int cache_bottom;
        struct dir_struct *dir;
        merge_fn_t fn;
        const char *msgs[NB_UNPACK_TREES_ERROR_TYPES];
+       /*
+        * Store error messages in an array, each case
+        * corresponding to a error message type
+        */
+       struct rejected_paths_list *unpack_rejects[NB_UNPACK_TREES_ERROR_TYPES];
 
        int head_idx;
        int merge_size;