View Javadoc
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 }