You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GitProtocolConstants.java 7.9KB

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