Merge branch 'jc/transport-do-not-use-connect-twice-in-fetch'
[gitweb.git] / transport.h
index ea70ea7e4a1b61c3006c614712ddd1aa41205ac6..8f96bed775e720043658169b46f70e192cf76b41 100644 (file)
@@ -2,6 +2,7 @@
 #define TRANSPORT_H
 
 #include "cache.h"
+#include "run-command.h"
 #include "remote.h"
 
 struct git_transport_options {
@@ -13,6 +14,7 @@ struct git_transport_options {
        int depth;
        const char *uploadpack;
        const char *receivepack;
+       struct push_cas_option *cas;
 };
 
 struct transport {
@@ -27,6 +29,12 @@ struct transport {
         */
        unsigned got_remote_refs : 1;
 
+       /*
+        * Transports that call take-over destroys the data specific to
+        * the transport type while doing so, and cannot be reused.
+        */
+       unsigned cannot_reuse : 1;
+
        /**
         * Returns 0 if successful, positive if the option is not
         * recognized or is inapplicable, and negative if the option
@@ -126,6 +134,9 @@ struct transport *transport_get(struct remote *, const char *);
 /* Transfer the data as a thin pack if not null */
 #define TRANS_OPT_THIN "thin"
 
+/* Check the current value of the remote ref */
+#define TRANS_OPT_CAS "cas"
+
 /* Keep the pack that was transferred if not null */
 #define TRANS_OPT_KEEP "keep"