contrib/examples/git-revert.sh: use the $( ... ) construct for command substitution
[gitweb.git] / transport.h
index 18d2cf8275e1f5f6ff3d18afde55d06ed7586af9..8ebaaf2cae054bcdfea491fc464f8bf3180b1e03 100644 (file)
@@ -12,7 +12,6 @@ struct git_transport_options {
        unsigned check_self_contained_and_connected : 1;
        unsigned self_contained_and_connected : 1;
        unsigned update_shallow : 1;
-       unsigned push_cert : 1;
        int depth;
        const char *uploadpack;
        const char *receivepack;
@@ -75,15 +74,15 @@ struct transport {
        /**
         * Push the objects and refs. Send the necessary objects, and
         * then, for any refs where peer_ref is set and
-        * peer_ref->new_sha1 is different from old_sha1, tell the
-        * remote side to update each ref in the list from old_sha1 to
-        * peer_ref->new_sha1.
+        * peer_ref->new_oid is different from old_oid, tell the
+        * remote side to update each ref in the list from old_oid to
+        * peer_ref->new_oid.
         *
         * Where possible, set the status for each ref appropriately.
         *
         * The transport must modify new_sha1 in the ref to the new
         * value if the remote accepted the change. Note that this
-        * could be a different value from peer_ref->new_sha1 if the
+        * could be a different value from peer_ref->new_oid if the
         * process involved generating new commits.
         **/
        int (*push_refs)(struct transport *transport, struct ref *refs, int flags);
@@ -124,8 +123,9 @@ struct transport {
 #define TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND 256
 #define TRANSPORT_PUSH_NO_HOOK 512
 #define TRANSPORT_PUSH_FOLLOW_TAGS 1024
-#define TRANSPORT_PUSH_CERT 2048
-#define TRANSPORT_PUSH_ATOMIC 4096
+#define TRANSPORT_PUSH_CERT_ALWAYS 2048
+#define TRANSPORT_PUSH_CERT_IF_ASKED 4096
+#define TRANSPORT_PUSH_ATOMIC 8192
 
 #define TRANSPORT_SUMMARY_WIDTH (2 * DEFAULT_ABBREV + 3)
 #define TRANSPORT_SUMMARY(x) (int)(TRANSPORT_SUMMARY_WIDTH + strlen(x) - gettext_width(x)), (x)
@@ -133,6 +133,24 @@ struct transport {
 /* Returns a transport suitable for the url */
 struct transport *transport_get(struct remote *, const char *);
 
+/*
+ * Check whether a transport is allowed by the environment. Type should
+ * generally be the URL scheme, as described in Documentation/git.txt
+ */
+int is_transport_allowed(const char *type);
+
+/*
+ * Check whether a transport is allowed by the environment,
+ * and die otherwise.
+ */
+void transport_check_allowed(const char *type);
+
+/*
+ * Returns true if the user has attempted to turn on protocol
+ * restrictions at all.
+ */
+int transport_restrict_protocols(void);
+
 /* Transport options which apply to git:// and scp-style URLs */
 
 /* The program to use on the remote side to send a pack */