1 /* 2 * Copyright (C) 2008-2013, Google Inc. 3 * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com> 4 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> and others 5 * 6 * This program and the accompanying materials are made available under the 7 * terms of the Eclipse Distribution License v. 1.0 which is available at 8 * https://www.eclipse.org/org/documents/edl-v10.php. 9 * 10 * SPDX-License-Identifier: BSD-3-Clause 11 */ 12 13 package org.eclipse.jgit.transport; 14 15 /** 16 * Wire constants for the native Git protocol. 17 * 18 * @since 3.2 19 */ 20 public final class GitProtocolConstants { 21 /** 22 * Include tags if we are also including the referenced objects. 23 * 24 * @since 3.2 25 */ 26 public static final String OPTION_INCLUDE_TAG = "include-tag"; //$NON-NLS-1$ 27 28 /** 29 * Multi-ACK support for improved negotiation. 30 * 31 * @since 3.2 32 */ 33 public static final String OPTION_MULTI_ACK = "multi_ack"; //$NON-NLS-1$ 34 35 /** 36 * Multi-ACK detailed support for improved negotiation. 37 * 38 * @since 3.2 39 */ 40 public static final String OPTION_MULTI_ACK_DETAILED = "multi_ack_detailed"; //$NON-NLS-1$ 41 42 /** 43 * The client supports packs with deltas but not their bases. 44 * 45 * @since 3.2 46 */ 47 public static final String OPTION_THIN_PACK = "thin-pack"; //$NON-NLS-1$ 48 49 /** 50 * The client supports using the side-band for progress messages. 51 * 52 * @since 3.2 53 */ 54 public static final String OPTION_SIDE_BAND = "side-band"; //$NON-NLS-1$ 55 56 /** 57 * The client supports using the 64K side-band for progress messages. 58 * 59 * @since 3.2 60 */ 61 public static final String OPTION_SIDE_BAND_64K = "side-band-64k"; //$NON-NLS-1$ 62 63 /** 64 * The client supports packs with OFS deltas. 65 * 66 * @since 3.2 67 */ 68 public static final String OPTION_OFS_DELTA = "ofs-delta"; //$NON-NLS-1$ 69 70 /** 71 * The client supports shallow fetches. 72 * 73 * @since 3.2 74 */ 75 public static final String OPTION_SHALLOW = "shallow"; //$NON-NLS-1$ 76 77 /** 78 * The client wants the "deepen" command to be interpreted as relative to 79 * the client's shallow commits. 80 * 81 * @since 5.0 82 */ 83 public static final String OPTION_DEEPEN_RELATIVE = "deepen-relative"; //$NON-NLS-1$ 84 85 /** 86 * The client does not want progress messages and will ignore them. 87 * 88 * @since 3.2 89 */ 90 public static final String OPTION_NO_PROGRESS = "no-progress"; //$NON-NLS-1$ 91 92 /** 93 * The client supports receiving a pack before it has sent "done". 94 * 95 * @since 3.2 96 */ 97 public static final String OPTION_NO_DONE = "no-done"; //$NON-NLS-1$ 98 99 /** 100 * The client supports fetching objects at the tip of any ref, even if not 101 * advertised. 102 * 103 * @since 3.2 104 */ 105 public static final String OPTION_ALLOW_TIP_SHA1_IN_WANT = "allow-tip-sha1-in-want"; //$NON-NLS-1$ 106 107 /** 108 * The client supports fetching objects that are reachable from a tip of a 109 * ref that is allowed to fetch. 110 * 111 * @since 4.1 112 */ 113 public static final String OPTION_ALLOW_REACHABLE_SHA1_IN_WANT = "allow-reachable-sha1-in-want"; //$NON-NLS-1$ 114 115 /** 116 * Symbolic reference support for better negotiation. 117 * 118 * @since 3.6 119 */ 120 public static final String OPTION_SYMREF = "symref"; //$NON-NLS-1$ 121 122 /** 123 * The client will send a push certificate. 124 * 125 * @since 4.0 126 */ 127 public static final String OPTION_PUSH_CERT = "push-cert"; //$NON-NLS-1$ 128 129 /** 130 * The client specified a filter expression. 131 * 132 * @since 5.0 133 */ 134 public static final String OPTION_FILTER = "filter"; //$NON-NLS-1$ 135 136 /** 137 * The client specified a want-ref expression. 138 * 139 * @since 5.1 140 */ 141 public static final String OPTION_WANT_REF = "want-ref"; //$NON-NLS-1$ 142 143 /** 144 * The client requested that the whole response be multiplexed, with 145 * each non-flush and non-delim pkt prefixed by a sideband designator. 146 * 147 * @since 5.5 148 */ 149 public static final String OPTION_SIDEBAND_ALL = "sideband-all"; //$NON-NLS-1$ 150 151 /** 152 * The client supports atomic pushes. If this option is used, the server 153 * will update all refs within one atomic transaction. 154 * 155 * @since 3.6 156 */ 157 public static final String CAPABILITY_ATOMIC = "atomic"; //$NON-NLS-1$ 158 159 /** 160 * The client expects less noise, e.g. no progress. 161 * 162 * @since 4.0 163 */ 164 public static final String CAPABILITY_QUIET = "quiet"; //$NON-NLS-1$ 165 166 /** 167 * The client expects a status report after the server processes the pack. 168 * 169 * @since 3.2 170 */ 171 public static final String CAPABILITY_REPORT_STATUS = "report-status"; //$NON-NLS-1$ 172 173 /** 174 * The server supports deleting refs. 175 * 176 * @since 3.2 177 */ 178 public static final String CAPABILITY_DELETE_REFS = "delete-refs"; //$NON-NLS-1$ 179 180 /** 181 * The server supports packs with OFS deltas. 182 * 183 * @since 3.2 184 */ 185 public static final String CAPABILITY_OFS_DELTA = "ofs-delta"; //$NON-NLS-1$ 186 187 /** 188 * The client supports using the 64K side-band for progress messages. 189 * 190 * @since 3.2 191 */ 192 public static final String CAPABILITY_SIDE_BAND_64K = "side-band-64k"; //$NON-NLS-1$ 193 194 /** 195 * The server allows recording of push certificates. 196 * 197 * @since 4.0 198 */ 199 public static final String CAPABILITY_PUSH_CERT = "push-cert"; //$NON-NLS-1$ 200 201 /** 202 * Implementation name and version of the client or server. 203 * 204 * @since 4.0 205 */ 206 public static final String OPTION_AGENT = "agent"; //$NON-NLS-1$ 207 208 /** 209 * The server supports the receiving of push options. 210 * 211 * @since 4.5 212 */ 213 public static final String CAPABILITY_PUSH_OPTIONS = "push-options"; //$NON-NLS-1$ 214 215 /** 216 * The server supports the client specifying ref names. 217 * 218 * @since 5.1 219 */ 220 public static final String CAPABILITY_REF_IN_WANT = "ref-in-want"; //$NON-NLS-1$ 221 222 /** 223 * The server supports arbitrary options 224 * 225 * @since 5.2 226 */ 227 public static final String CAPABILITY_SERVER_OPTION = "server-option"; //$NON-NLS-1$ 228 229 /** 230 * Option for passing application-specific options to the server. 231 * 232 * @since 5.2 233 */ 234 public static final String OPTION_SERVER_OPTION = "server-option"; //$NON-NLS-1$ 235 236 /** 237 * The server supports listing refs using protocol v2. 238 * 239 * @since 5.0 240 */ 241 public static final String COMMAND_LS_REFS = "ls-refs"; //$NON-NLS-1$ 242 243 /** 244 * The server supports fetch using protocol v2. 245 * 246 * @since 5.0 247 */ 248 public static final String COMMAND_FETCH = "fetch"; //$NON-NLS-1$ 249 250 enum MultiAck { 251 OFF, CONTINUE, DETAILED; 252 } 253 254 private GitProtocolConstants() { 255 } 256 }