apply --recount: allow "no-op hunks"
[gitweb.git] / unpack-trees.h
index 6c48117b845fbf7b983852be302e4472c5e6d651..847f217dbaecea678f48d5086e7099c3c24a53c4 100644 (file)
@@ -1,10 +1,14 @@
 #ifndef UNPACK_TREES_H
 #define UNPACK_TREES_H
 
+#include "cache.h"
+#include "argv-array.h"
 #include "string-list.h"
+#include "tree-walk.h"
 
 #define MAX_UNPACK_TREES 8
 
+struct cache_entry;
 struct unpack_trees_options;
 struct exclude_list;
 
@@ -32,6 +36,11 @@ enum unpack_trees_error_types {
 void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
                                  const char *cmd);
 
+/*
+ * Frees resources allocated by setup_unpack_trees_porcelain().
+ */
+void clear_unpack_trees_porcelain(struct unpack_trees_options *opts);
+
 struct unpack_trees_options {
        unsigned int reset,
                     merge,
@@ -56,6 +65,7 @@ struct unpack_trees_options {
        struct pathspec *pathspec;
        merge_fn_t fn;
        const char *msgs[NB_UNPACK_TREES_ERROR_TYPES];
+       struct argv_array msgs_to_free;
        /*
         * Store error messages in an array, each case
         * corresponding to a error message type
@@ -75,8 +85,11 @@ struct unpack_trees_options {
        struct exclude_list *el; /* for internal use */
 };
 
-extern int unpack_trees(unsigned n, struct tree_desc *t,
-               struct unpack_trees_options *options);
+int unpack_trees(unsigned n, struct tree_desc *t,
+                struct unpack_trees_options *options);
+
+int verify_uptodate(const struct cache_entry *ce,
+                   struct unpack_trees_options *o);
 
 int threeway_merge(const struct cache_entry * const *stages,
                   struct unpack_trees_options *o);