refspec: consolidate ref-prefix generation logic
[gitweb.git] / fetch-pack.h
index b6aeb43a8e21437581e0e834e77754922f8c6ee9..6afa08b48bb9f7cc2db1b2fb4644c576fd8d8f3e 100644 (file)
@@ -3,6 +3,8 @@
 
 #include "string-list.h"
 #include "run-command.h"
+#include "protocol.h"
+#include "list-objects-filter-options.h"
 
 struct oid_array;
 
@@ -12,6 +14,7 @@ struct fetch_pack_args {
        int depth;
        const char *deepen_since;
        const struct string_list *deepen_not;
+       struct list_objects_filter_options filter_options;
        unsigned deepen_relative:1;
        unsigned quiet:1;
        unsigned keep_pack:1;
@@ -29,6 +32,14 @@ struct fetch_pack_args {
        unsigned cloning:1;
        unsigned update_shallow:1;
        unsigned deepen:1;
+       unsigned from_promisor:1;
+
+       /*
+        * If 1, fetch_pack() will also not modify any object flags.
+        * This allows fetch_pack() to safely be called by any function,
+        * regardless of which object flags it uses (if any).
+        */
+       unsigned no_dependents:1;
 };
 
 /*
@@ -43,7 +54,8 @@ struct ref *fetch_pack(struct fetch_pack_args *args,
                       struct ref **sought,
                       int nr_sought,
                       struct oid_array *shallow,
-                      char **pack_lockfile);
+                      char **pack_lockfile,
+                      enum protocol_version version);
 
 /*
  * Print an appropriate error message for each sought ref that wasn't